在火花流中播放

时间:2015-06-28 01:33:40

标签: apache-spark streaming broadcast

如何广播通过窗口计算的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

1 个答案:

答案 0 :(得分:0)

以下可能有用吗?

yourDStream.foreachRDD(somefunc)

然后在somefunc中:

def somefunc(rdd):
    broadcastedList=sc.broadcast(rdd.collect())