Spark Struct Streaming作业中有多个查询,那么如何缓存数据?

时间:2019-01-30 11:24:17

标签: apache-spark spark-structured-streaming

在一个火花作业中有多个查询,当我开始该作业时,我发现每个查询都与kafka建立连接,并且它们彼此之间不共享数据,因此如何缓存数据以避免读取相同的数据很多次。

我尝试使用“ CACHE TABLE cache_table;“ 然后

Queries with streaming sources must be executed with writeStream.start();;
kafka
org.apache.spark.sql.catalyst.analysis.UnsupportedOperationChecker$.org$apache$spark$sql$catalyst$analysis$UnsupportedOperationChecker$$throwError(UnsupportedOperationChecker.scala:374)
org.apache.spark.sql.catalyst.analysis.UnsupportedOperationChecker$$anonfun$checkForBatch$1.apply(UnsupportedOperationChecker.scala:37)
org.apach

1 个答案:

答案 0 :(得分:0)

每个流查询都是一个单独的线程。使用Kafka数据源时,流查询也是一个单独的Kafka使用者。

话虽如此,您必须将它们全部用作单个查询的一部分,以便它们可以共享数据。 join可能是解决方案。