Apache spark Spark结构化流传输抛出错误中具有不同计数的聚合

Apache spark Spark结构化流传输抛出错误中具有不同计数的聚合,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我正在尝试获取Spark结构化流媒体中Parentgroup、childgroup和MountingType组的唯一id 代码:下面的代码正在抛出错误 .withWatermark("timestamp", "1 minutes") val aggDF = JSONDF.groupBy("Parentgroup","childgroup","MountingType")

我正在尝试获取Spark结构化流媒体中Parentgroup、childgroup和MountingType组的唯一id

代码:下面的代码正在抛出错误

  .withWatermark("timestamp", "1 minutes")
          val aggDF = JSONDF.groupBy("Parentgroup","childgroup","MountingType")
       .agg(countDistinct("id"))

Error:
Append output mode not supported when there are streaming aggregations on streaming DataFrames/DataSets without watermark
请有人帮助我如何在结构化流媒体中聚合和写入csv。 非常感谢

数据:


分组操作需要在spark streaming中指定窗口或时间段

试试这个

psuedo code    
val JSONDF = df.withWatermark("timestamp", "1 minutes")
val aggDF = JSONDF.groupBy(window("timestamp", "5 minutes", "1 minutes")).agg(countDistinct("id"),$"Parentgroup",$"childgroup",$"MountingType")
参考:

请提供错误详细信息。@kavetiraviteja:在流式数据帧/数据集上存在无水印的流式聚合时,不支持追加输出模式@卡维蒂拉维特加:请帮助我……如果可能的话。请检查我的评论。非常感谢。。。。甚至我也导入了import org.apache.spark.sql.functions。。。。仍然出现类似“无法解析重载方法窗口。我使用了scala而不是python。请检查此处的窗口函数。”
psuedo code    
val JSONDF = df.withWatermark("timestamp", "1 minutes")
val aggDF = JSONDF.groupBy(window("timestamp", "5 minutes", "1 minutes")).agg(countDistinct("id"),$"Parentgroup",$"childgroup",$"MountingType")