火花流中批次间隔,滑动间隔和窗口大小之间的差异

时间:2018-06-04 06:07:04

标签: apache-spark spark-streaming

我是新的火花流。我知道窗口大小需要是批处理间隔的倍数。但滑动间隔如何工作?如果我有3个窗口大小和2个滑动间隔,当我计算说出字数时,是否会有重叠?或者滑动间隔和批次间隔应该相同吗?

1 个答案:

答案 0 :(得分:1)

Here是文档的链接。

enter image description here

让我们来看看这些概念:

  1. 批处理间隔 - 在调度处理数据之前收集数据的时间(以秒为单位)。例如,如果您将批处理间隔设置为5秒 - Spark Streaming将收集数据5秒钟,然后使用该数据对RDD进行计算。
  2. 窗口大小 - 处理前RDD中应包含多少历史数据的时间间隔(秒)。例如,您有1秒的批处理间隔和2的窗口大小 - 在这种情况下,您将计算每2秒以前的批次计算。例如,在时间= 3时,您将获得时间= 2和时间= 3的批次数据。
  3. 滑动间隔 - 窗口移动量的时间量(以秒为单位)。例如,在先前的示例中,滑动间隔是1(因为计算每秒被踢出),例如,在时间= 1,时间= 2,时间= 3 ...如果设置滑动间隔= 2,您将在时间= 1,时间= 3,时间= 5 ...
  4. 进行计算

    您可以参考上面的图片,其中窗口大小是批处理间隔的3倍,滑动窗口是批处理间隔的2倍。

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

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