Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。比如下图中,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过了两秒钟,又会对最近三秒内的数据执行滑动窗口计算。所以每个滑动窗口操作,都必须指定两个参数,窗口长度以及滑动间隔,而且这两个参数值都必须是batch间隔的整数倍。
操作 | 说明 |
---|---|
window | 对窗口执行自定义计算 |
countByWindow | 对每个窗口执行count操作 |
reduceByWindow | 对每个窗口执行reduce操作 |
reduceByKeyWindow | 对每个窗口执行reduceByKey操作 |
countByValueWindow | 对每个窗口执行countByValue操作 |