我想知道是否可以使用 Sparks Streaming 将滑动窗口级联到另一个。
因此,例如,我每 1 秒就有一次计数。我想总结 5、15 和 30 秒的窗口。我想知道是否可以将 5 秒的窗口结果用于 15 秒的结果,将 15 秒的结果用于 30 秒。
目的是避免为最长窗口的长度存储所有输入的 1 秒更新(因为这里的粒度无关紧要)。相反,我们以与我们需要的频率相匹配的频率重用 Dstream。
这是和示例:
JavaPairDStream< String, Double > test = input;
JavaPairDStream< String, Double > test1 = input;
// 5s:
test = test.reduceByKeyAndWindow(new SumReducer(), new Duration(5000), new Duration(1000));
test1 = test1.reduceByKeyAndWindow(new SumReducer(), new Duration(5000), new Duration(5000));
// 15s
test = test1.reduceByKeyAndWindow(new SumReducer(), new Duration(15000), new Duration(5000));
test1 = test1.reduceByKeyAndWindow(new SumReducer(), new Duration(15000), new Duration(15000));
// 30s
test = test1.reduceByKeyAndWindow(new SumReducer(), new Duration(30000), new Duration(15000));
test.print();
我试过了,但没有打印出来。