我是基于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]))
。它输出一些错误。
在任何情况下,如果有人需要,我首先得到配对的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)