从Dstream Window返回单个rdds

时间:2016-06-09 16:57:21

标签: spark-streaming

如何从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键值对。

请建议。

1 个答案:

答案 0 :(得分:2)

在DStream上有一个没有记录的方法,让你得到属于一段时间的RDD:

def slice(fromTime: Time, toTime: Time): Seq[RDD[T]] 

这由window函数在内部使用,但它也作为公共API公开。要使用它,我们需要跟踪时间,因为它需要一个时间间隔作为参数。它返回属于该间隔的一系列RDD。 (之前已经记得"记得"要么显式地,要么通过调用窗口函数)