在批处理期间读取/访问Spark流的批处理开始时间

我的数据流非常尖刻,每隔一段时间,这些批次就会备份,并最终清除。我的表现还不错,但我的报告要求能够访问批处理“开始时间”(至少大致如此)。我一直在寻找它,但是只能在Spark Console上找到它,列出“流式处理”批处理(待处理/当前/过去都有一个“批处理时间”)。它必须在某个地方可用(在合理范围内尝试了DStream结构)。我缺少一些魔术吗?

有一个“上下文”开始时间,但这只是流上下文的开始时间,并且永远不会改变。

l464547980 回答:在批处理期间读取/访问Spark流的批处理开始时间

@Robert Wyatt,

您正在寻找的是structured streaming 监视

https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#monitoring-streaming-queries

,

解决方案更新:我发现添加“流监听器”来记录“ onBatchStarted”方法中的批处理时间是我所需要的。我在回调的Broadcast变量中使用了该值,以使批处理开始时间可用于所有执行程序。简单的解决方案。

背景:我正在将流数据转换为时间序列数据。如果您从未落后于处理时间,则可以使用当前时间进行批处理。当大量数据命中并备份时,来自Kafka的直接流的好处使处理积压变得简单,但是当前的系统时间不再有用。这是与实际批处理时间相关的地方。

本文链接:https://www.f2er.com/3071586.html

大家都在问