nilai kunci maksimum dalam operasi berbasis rdd di pyspark

Saya baru mengenal operasi berbasis rdd. Saya mencoba memahami nilai kunci maksimal. Saya memiliki rdd seperti ini:

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

Saya harus menemukan maksimal elemen ke-2 berdasarkan kunci. Saya ingin melihat hasilnya seperti ini;

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

Saya mencoba newrdd = RDD.reduceByKey(lambda x: max(x[2])). Ini menghasilkan beberapa kesalahan.


person Mass17    schedule 16.11.2019    source sumber


Jawaban (1)


Bagaimanapun jika seseorang membutuhkan, pertama-tama saya mendapatkan rdd yang dipasangkan.

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

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

lis = newrdd.collect()

for i in lis:
    print(i)
person Mass17    schedule 16.11.2019