如何从dstream窗口返回单个rdd?:
my_dstream_window : somedstream.window(3mins,1min)
假设上面的 my_dstream_window 包含{rdd1,rdd2,rdd3}我想在
上做一些操作 rdd1.Operation(rdd2).Operation(rdd3)
意图: - my_dstream_window 有重复项。我可以使用reduceByKey为此流删除它们,但下一个 my_dstream_window 片段将与旧版本具有重叠的键值对。
所以基本上我的任务是仅通过删除前一个dstream中的任何重叠键值来保存不同的rdd键值对。
请建议。
答案 0 :(得分:2)
在DStream上有一个没有记录的方法,让你得到属于一段时间的RDD:
def slice(fromTime: Time, toTime: Time): Seq[RDD[T]]
这由window
函数在内部使用,但它也作为公共API公开。要使用它,我们需要跟踪时间,因为它需要一个时间间隔作为参数。它返回属于该间隔的一系列RDD。 (之前已经记得"记得"要么显式地,要么通过调用窗口函数)