为什么Spark流式传输会创建0个事件的批次?

时间:2016-04-23 08:18:55

标签: apache-spark

Spark streaming继续创建具有0个事件的批处理,并将它们排队以在下一个作业迭代中处理。但是,是否真的有必要对没有任何待处理的批处理进行排队,或者是否存在隐藏的内容?

1 个答案:

答案 0 :(得分:3)

这是按预期工作的,因为即使没有数据,您的工作仍然可以产生输出(在过滤数据后也可能发生这种情况)。

例如,您可能会向数据库写一些记录,表明在给定的时间戳上没有可用的数据。

stream.foreachRDD { rdd =>
  if (rdd.isEmpty)  // write "empty" record to db
  else // write data to db
}