必须使用writeStream.start()执行带有流源的查询

时间:2018-06-11 19:28:36

标签: apache-spark apache-kafka spark-structured-streaming

我有一个由tempDataFrame2组成的结构化流数据帧Field1。我正在尝试计算Field1的近似值。但是,每当我输入

val Array(Q1, Q3) = tempDataFrame2.stat.approxQuantile("Field1", Array(0.25, 0.75), 0.0)我收到以下错误消息:

Queries with streaming sources must be executed with writeStream.start()

以下是代码段:

val tempDataFrame2 = A structured streaming dataframe

// Calculate IQR
val Array(Q1, Q3) = tempDataFrame2.stat.approxQuantile("Field1", Array(0.25, 0.75), 0.0)

// Filter messages
val tempDataFrame3 = tempDataFrame2.filter("Some working filter")

val query = tempDataFrame2.writeStream.outputMode("append").queryName("table").format("console").start()
query.awaitTermination()

我已经完成了SO的这两个链接:Link1 Link2。不幸的是,我无法将这些回复与我的问题联系起来。

修改

阅读完评论后,以下是我计划继续进行的方式:

1)从Kafka主题中读取所有未提交的偏移量。 2)将它们保存到数据帧变量。 3)停止结构化流媒体,以便我不再阅读Kafka主题。 4)开始处理步骤2中保存的数据帧。

但是,现在我不确定如何继续 -

1)如何知道我在Kafka主题中没有任何其他记录要使用并停止流式查询?

0 个答案:

没有答案