我需要找到每个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