我需要找到每個RDD的最大密鑰,但使用reduce()時,我能得到的是整個Dstream中最大的一個。例如,在這個流中,我想要返回的是(2,「b」),(2,「d」),(3,「f」),但是我只能得到(3,「f」 )通過reduce(max)
我怎樣才能得到(2,「b」),(2,「d」),(3,「f」)?我可以獲得DStream中每個RDD的最大密鑰嗎?
sc = SparkContext(appName="PythonStreamingQueueStream")
ssc = StreamingContext(sc, 1)
stream = ssc.queueStream([sc.parallelize([(1,"a"), (2,"b"),(1,"c"),(2,"d"),
(1,"e"),(3,"f")],3)])
stream.reduce(max).pprint()
ssc.start()
ssc.stop(stopSparkContext=True, stopGraceFully=True)
只有一個'RDD'流中.... – 2016-11-20 13:20:51
我很抱歉,但我分割數據成3部分由'sc.parallelize' –
否...請閱讀'minPartitions'正在做什麼:)通過3個RDD,每個批次都得到'max'。 – 2016-11-20 13:28:00