apache-spark - 为什么 Spark streaming 创建具有 0 个事件的批处理?

标签 apache-spark

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/

相关文章:

json - 结构化流如何动态解析kafka的json数据

apache-spark - YARN ResourceManager的Total Memory是怎么计算的?

java - java中的spark流与mongodb

apache-spark - Spark Streaming 的动态分配

apache-spark - 在PySpark中的名称之间修剪附加空格

azure - 如何在 Azure Databricks Notebook Run Now JSON 中提供集群名称

hadoop - 如何修复 Spark Streaming 中的数据局部性?

mongodb - 无法在身份验证模式下使用 Mongo 连接 Mongo-Spark Connector

python - 如何在 python 中使用 `map` 将 dict 值转换为整数?

apache-spark - Spark Streaming 中的窗口?