在一个火花作业中有多个查询,当我开始该作业时,我发现每个查询都与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
答案 0 :(得分:0)
每个流查询都是一个单独的线程。使用Kafka数据源时,流查询也是一个单独的Kafka使用者。
话虽如此,您必须将它们全部用作单个查询的一部分,以便它们可以共享数据。 join
可能是解决方案。