pyspark中基于rdd的操作中键值的最大值

问题描述 投票:0回答:1

我对基于rdd的操作不熟悉。我正在尝试了解键值的最大值。我有这样的rdd:

RDD = sc.parallelize([("A", 2, 1), ("C", 8, 5), ("B", 3, 4), ("A", 7, 5), ("C", 5, 8), ("C", 6, 10), ("B", 10, 6)])

我必须根据键找到最多第二个元素。我想看到这样的输出;

("A", 7, 5)
("B", 10, 6)
("C", 6, 10)

我尝试过newrdd = RDD.reduceByKey(lambda x: max(x[2]))。它输出一些错误。

python-3.x pyspark bigdata rdd
1个回答
0
投票

无论如何,如果有人需要,我首先会找到配对的rdd。

pairedrdd = RDD.map(lambda x: (x[0], x[2]))

然后newrdd = pairedrdd.reduceByKey(lambda x, y: max(x,y))

lis = newrdd.collect()

for i in lis:
    print(i)
© www.soinside.com 2019 - 2024. All rights reserved.