星火流 - 滑动窗口和使用不同的
问题描述:
我们可以使用窗口创建转化DStream
具有更大的批次:星火流 - 滑动窗口和使用不同的
streamIDs.window(Duration(1000)).foreachRDD(rdd => println(rdd.distinct().count()))
有没有什么办法让同在幻灯片持续时间也可作为移动窗口参数?
答
您是否试图滤除窗口中的重复项?在这种情况下,你可以通过你的RDD映射到键值对,其中关键是原始元素的副本,该值并不重要模拟不同的窗口上面,说null
:
streamIDs
.mapToPair(lambda s : (s, null))
.reduceByKeyAndWindow(lambda t1, t2 : t1, Duration(1000))
.map(lambda (x, y) : x)
这将从每个滑动窗口创建不同值的DStream。
如果你也想在每个窗口的每个值的数量,请执行下列操作:
streamIDs
.mapToPair(lambda s : (s, 1))
.reduceByKeyAndWindow(lambda t1, t2 : t1 + t2, Duration(1000))
这将创造价值数对,例如一个DSTREAM ('A', 3), ('B', 5)...