火花流中批次间隔、滑动间隔和 window 大小之间的差异

Difference between batch interval, sliding interval and window size in spark streaming

我是新来的火花流。我知道 window 大小需要是批次间隔的倍数。但是滑动间隔是如何工作的呢?如果我有 3 作为 window 大小和 2 作为滑动间隔,当我计算说字数时不会有重叠吗?还是滑动间隔和batch间隔应该一样?

Here 是文档的 link。

让我们来看看这些概念:

  1. batch interval - 这是以秒为单位的时间,以秒为单位,在对数据进行调度处理之前将收集多长时间的数据。例如,如果您将批次间隔设置为 5 秒 - Spark Streaming 将收集数据 5 秒,然后使用该数据在 RDD 上启动计算。
  2. window size - 在处理之前,RDD 中应包含多少历史数据的时间间隔(以秒为单位)。例如,您有 1 秒的批次间隔和 window 大小为 2 - 在这种情况下,您将每秒踢出前 2 个批次的计算。例如,在 time=3 时,您将在 time=2 和 time=3 时获得来自批处理的数据。
  3. 滑动间隔 - window 移动的时间量(以秒为单位)。例如,在前面的示例中,滑动间隔为 1(因为每秒都会踢出计算),例如at time=1, time=2, time=3... 如果你设置滑动间隔=2,你会在time=1, time=3, time=5...

可以参考上图,其中window大小是batch interval的3倍,sliding window是batch interval的2倍

回答一个问题,为什么 window 和滑动间隔应该是批次间隔的倍数 - 这是因为否则你的 window 将在批次之间结束。

如果您有 3 个 window 大小和 2 个滑动间隔(见图)- 是的,您的字数会重叠。基本上,当您想在有限的时间 内计算某些东西时,您会使用 window - 例如实际新闻或推文或其他任何东西,当您不需要所有历史数据进行分析时。