【发布时间】:2019-06-30 09:36:20
【问题描述】:
我有一个只有一个分区的有序 Kafka 主题。 我想从 Spark(Spark Streaming 或 Structured Streaming)中读取它。 为此,我使用了以下代码:
spark.readStream.format("kafka") ...
在控制台中写入以查看我使用的结果:
myStreamName.writeStream.trigger(Trigger.ProcessingTime("2 seconds")).format("console").outputMode("append").start
我在输出中看到流的所有记录都是有序的。但尽管如此,我在其他帖子中读过 Spark 并不能保证顺序。 看: Spark Direct Stream Kafka order of events
我的问题是: 由于我使用的是 Processing-time 并且我从 有序的 Kafka 主题 中读取数据,我可以确定我的输出始终是有序的吗?如果不是,是否可以仅使用一个 Spark 分区来保证有序输出(例如应用 coalesce() 方法)?
【问题讨论】:
标签: apache-spark apache-kafka spark-streaming spark-structured-streaming