1.窗口概念
1.1、.SparkStreaming之window滑动窗口应用,Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的rdds。
1.2、每个滑动窗口操作都包含两个参数windowLength(窗口大小), slideInterval(窗口移动速率参数,即多久滑动一次),这两个参数值都必须是batch间隔的整数倍。
2.SparkStreaming中的对窗口滑动支持的转换操作
2.1、包含操作如下表:
2.2、具体方法:
1、window(windowLength, slideInterval):当前时刻当前长度窗口中的元素取出形成一个新的DStream。
2、 countByWindow(windowLength,slideInterval):返回指定长度窗口中的元素个数。
3、 countByValueAndWindow(windowLength,slideInterval, [numTasks]):调用该操作的DStream数据格式为(K, v),返回的DStream格式为(K, Long)。统计当前时间窗口中元素值相同的元素的个数。
4、 reduceByWindow(func, windowLength,slideInterval):调用该操作的DStream中的元素格式为(k, v),其数据源是基于该DStream的窗口长度中的所有数据。
5、reduceByKeyAndWindow(func, invFunc,windowLength, slideInterval, [numTasks]):调用该操作的DStream中的元素格式为(k, v),func:reduce函数,invFunc代表逆向reduce。该操作也有一个可选的并发数参数。
3.实例
这里对reduceByWindow和reduceByKeyAndWindow方法进行实例
3.1、reduceByWindow基于