我正在使用Spark进行结构化流式传输。我正在尝试将查询的输出保存到Hadoop系统。但是存在两难:因为我使用聚合,我必须将输出模式设置为“完整”,同时,文件接收器仅适用于镶木地板。有什么解决方法吗?以下是我的代码:
val userSchema = new StructType().add("user1", "integer")
.add("user2", "integer")
.add("timestamp", "timestamp")
.add("interaction", "string")
val tweets = spark
.readStream
.option("sep", ",")
.schema(userSchema)
.csv(streaming_path)
val windowedCounts = tweets.filter("interaction='MT'")
.groupBy(
window($"timestamp", "10 seconds", "10 seconds")
).agg(GroupConcat($"user2")).sort(asc("window"))
val query = windowedCounts.writeStream
.format("parquet")
.option("path", "partb_q2")
.option("checkpointLocation", "checkpoint")
.start()
query.awaitTermination()