максимальное значение ключа в операции на основе rdd в pyspark

Я новичок в работе на основе 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)])

Мне нужно найти максимум 2-х элементов на основе ключей. Я хотел бы видеть такой вывод;

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

Я пробовал newrdd = RDD.reduceByKey(lambda x: max(x[2])). Выдает какие-то ошибки.


person Mass17    schedule 16.11.2019    source источник


Ответы (1)


В любом случае, если кому-то нужно, я сначала получил спаренный рдд.

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)
person Mass17    schedule 16.11.2019