- 整个SparkStreaming每个批次的时间间隔假设为N秒
通过构建StreamingContext对象设置StreamingContext(sc,Seconds(N)) - 设置开窗函数参数第一个时间为窗口长度第二个参数为窗体滑动间隔
reduceByKeyAndWindow((a:Int,b:Int)=>a+b,Seconds(2N),Seconds(2N))
需要注意的是
1. 窗体滑动时间和长度要为每个批次的整数倍避免资源浪费
2. 窗口长度应该与滑动时间相同,若是窗口长度大于滑动时间数据会被重复读取反之会丢失数据