1
如何通过窗口广播计算出的dstream?例如,在最后10分钟,我发现行的子集满足一个条件(称之为send_events dstream)。我需要使用send_events dstream在最近10分钟内找到满足另一个条件的一组行(称为ack_events_for_send_events dstream)。由于大型洗牌,我不想分组。当我使用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
采取https://spark.apache.org/docs/latest/programming-guide.html#广播变量),这很容易。无论如何,从你的描述我不知道什么是你的问题的正确的解决方案。如果您想要更有效和具体的答案,请发布您已有的代码。 – lrnzcig
我已经多次阅读文档。在火花之内,这很容易理解。我可以收集RDD然后播放它,我的主要问题是播放一系列RDD的DStream。它应该很简单,但DStreams没有收集功能。有一个foreachRDD函数可能会有所帮助,但我无法弄清楚如何使用它来收集DStream中的所有数据。感谢您的评论btw。 –