Spark streaming 继续创建具有 0 个事件的批处理,并将它们排入队列以在下一次作业迭代中进行处理。但是,是否真的有必要对没有任何要处理的批处理进行排队,或者是否有隐藏的事情发生?
最佳答案
这是按预期工作的,因为即使在没有数据的情况下,您的作业仍然可以产生输出(过滤数据后也可能发生这种情况)。
例如,您可能会向数据库写入一些记录,指示在给定时间戳没有可用数据。
stream.foreachRDD { rdd =>
if (rdd.isEmpty) // write "empty" record to db
else // write data to db
}
关于apache-spark - 为什么 Spark streaming 创建具有 0 个事件的批处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36808403/