我有以下代码,我想知道为什么它只生成一批:
df = spark.readStream.format("kafka").option("kafka.bootstrap.servers", "IP").option("subscribe", "Topic").option("startingOffsets","earliest").load()
// groupby on slidings windows
query = slidingWindowsDF.writeStream.queryName("bla").outputMode("complete").format("memory").start()
该应用程序使用以下参数启动:
spark.streaming.backpressure.initialRate 5
spark.streaming.backpressure.enabled True
kafka 主题包含大约 1100 万条消息。由于initialRate参数,我预计它至少应该生成两批,但它只生成一批。谁能告诉我为什么 Spark 仅在一批中处理我的代码?
我正在使用 Spark 2.2.1 和 Kafka 1.0。
那是因为spark.streaming.backpressure.initialRate
参数仅由旧的 Spark Streaming 使用,而不由 Structured Streaming 使用。
相反,使用maxOffsetsPerTrigger
: http://spark.apache.org/docs/latest/structed-streaming-kafka-integration.html http://spark.apache.org/docs/latest/structured-streaming-kafka-integration.html
顺便说一句,另请参阅这个答案:Spark 结构化流如何处理背压? https://stackoverflow.com/questions/44871621/how-spark-structured-streaming-handles-backpressure, SSS现在没有完整的背压支持
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)