对于Spark Structured Streaming数据帧,collect_list会抛出错误:
ERROR执行程序:阶段11.0中的任务0.0中的异常(TID 1024) java.lang.RuntimeException:Collect不能用于部分聚合。
我有以下代码:
df.withColumn("RealValue", expr("(Class, Value)"))
.groupBy("Code", "Origin", "Destination", "PoS", "Date")
.agg(collect_list("RealValue").as("ValueSeq"))
.drop("Value")
其中df是流数据帧。
架构如下:
val schema = new StructType(Array(
StructField("Code", StringType),
StructField("Origin", StringType),
StructField("Destination", StringType),
StructField("Date", StringType),
StructField("PoS", StringType),
StructField("Class", StringType),
StructField("Value", StringType)
))
我如何克服这个问题?有没有其他方法可以实现流式数据帧?