如何广播通过窗口计算的dstream?例如,在最后10分钟,我发现满足条件的行子集(称之为send_events dstream)。我需要使用send_events dstream在过去的10分钟内找到一组满足另一个条件的行(称之为ack_events_for_send_events dstream)。由于大洗牌,我不想groupbykey。当我使用groupbykey时,每组的大小非常小,最多10个。换句话说,我有很多组(我不确定这是否有助于优化我的操作。只是想分享。)
示例:
id1, type1, time1
id1, type2, time3
id2, type1, time5
id1, type1, time2
id2, type2, time4
id1, type2, time6
我想找到每个id的type1和type2之间的最小时间差。每个id最多有10行,但在给定窗口中我有10,000个ID
答案 0 :(得分:0)
以下可能有用吗?
yourDStream.foreachRDD(somefunc)
然后在somefunc中:
def somefunc(rdd):
broadcastedList=sc.broadcast(rdd.collect())