2016-06-09 60 views
3

返回个人RDDS如何从DSTREAM窗口恢复单个RDD:从DSTREAM窗口

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的下一个片段将与旧的key-value对重叠。

所以基本上我的任务是保存不同的rdd键值对,只需从前一个dstream中删除任何重叠的键值。

请提出建议。

+0

my_dstream_window有重复项。我可以使用reduceByKey为这个流删除它们,但my_dstream_window的下一个片段将与旧的key-value对重叠。所以基本上我的任务是仅通过从下一个dstream中删除任何重叠的键值来保存唯一的rdd键值对。 – vkb

+0

请编辑与评论中的附加信息的问题。 –

+0

我已经回答了你的其他问题。这一个不会帮助达到预期的结果。 – maasg

回答

2

有上DSTREAM,它可以让你得到RDDS属于时间片非记录方法:

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

这是由window函数内部使用,但它也暴露了公共API。要使用它,我们需要跟踪时间,因为它需要一个时间间隔作为参数。它返回属于该间隔的一系列RDD。 (以前“明确”或通过调用窗口函数)