请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如何使用sss同时满足ss和sss的需求

假如只用sss来满足所有的统计需求,如何将Dataset同时处理两个需求呢. ss中可以处理完 最后用 ssc.start()
ssc.awaitTermination()
sss中 spark session应该在最后用什么命令呢 谢谢

正在回答 回答被采纳积分+3

1回答

Michael_PK 2023-02-06 11:21:34

sss是用于是偏向实时的,dataset是偏离线的,这两个的适用场景不太一样。

当然,也是可以混用的。

你要用SparkSQL的东西,只要拿到入口SparkSession就可以操作呢,SSS的入口也是SparkSession,那Dataset原来如何使用,现在还是一样的使用

1 回复 有任何疑惑可以回复我~
  • 提问者 慕盖茨9116835 #1
    老师 还是有点不太明白   
    public static void provinceCount(Dataset<String> input) throws TimeoutException, StreamingQueryException {
            Dataset<Row> etl = input.map((MapFunction<String, Tuple3<Timestamp, String, String>>) line ->{
                String[] words = line.split("\t");
      省略。。。
            etl.withWatermark("timestamp", "10 minutes").groupBy(
                    etl.col("day"),etl.col("Province")
            ).count()
                    .writeStream()
                    .outputMode("append")
                    .format("console")
                    .start()
                    .awaitTermination();;
    
        }
        public static void accessRank(Dataset<String> input) throws TimeoutException, StreamingQueryException {
    省略。。。
      Encoders.LONG(),Encoders.STRING()))
                    .toDF("day", "time", "user");
    
            etl.groupBy(new Column("day"), new Column("user"))
                    .sum("time")
                    .writeStream()
                    .outputMode("append")
                    .format("console")
                    .start()
                    .awaitTermination();
       
    假如我现在要进行实时省份浏览的统计和当天实时流量的排名(两个需求),我同时call这两个方法最后都有.start()
     .awaitTermination(); 这样是不是只有一个方法执行,要如何同时满足两个需求呢 谢谢
    回复 有任何疑惑可以回复我~ 2023-02-06 11:47:18
  • 提问者 慕盖茨9116835 #2
    这两个方法同时在main中call是不是不行 假如要同时要满足两个需求应该怎么办 谢谢
    回复 有任何疑惑可以回复我~ 2023-02-06 11:48:33
  • Michael_PK 回复 提问者 慕盖茨9116835 #3
    你的意思是只跑了一个吗?你打开webui,你看看你的资源够不?确认第二个作业是没资源执行还是咋的
    回复 有任何疑惑可以回复我~ 2023-02-08 09:22:38
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信