【发布时间】:2020-05-04 17:23:42
【问题描述】:
我有一个 流式传输 数据集,其中包含以下列:bag_id、ball_color。我想为每个包找到最流行的颜色。所以,我尝试了:
dataset.groupBy("bag_id", "color") # 1st aggregation
.agg(count("color").as("color_count"))
.groupBy("bag_id") # 2nd aggregation
.agg(max("color_count"))
但我有一个错误:
线程“主”org.apache.spark.sql.AnalysisException 中的异常: 流式传输不支持多个流式聚合 数据帧/数据集;;
我可以只用一个聚合函数创建正确的查询吗?
【问题讨论】:
-
你试过我的建议了吗?
-
@ggeop 感谢您的帮助。我用函数 sum 解决了我的问题
-
完美,好消息 :-) 我也遇到了同样的问题,但我没有这种灵活性来使用一个聚合,所以我使用了
foreachBatch()方法。
标签: apache-spark pyspark apache-spark-sql dataset spark-structured-streaming