Частоты чисел в списке — Pyspark

#apache-spark #pyspark #rdd

#apache-искра #пыспарк #rdd

Вопрос:

У меня есть этот код, который выводит список значений:

 ARDD.map(function_B)   .filter(lambda x: x is not None)   .take(6)  

Выход:

 ['2','10','2','12','3','3']  

Как я могу изменить код, чтобы получить этот вывод?

 [2:2, 3:2, 10:1, 12:1]  

Ответ №1:

Использование map и reduceByKey методы RDD:

 rdd = spark.sparkContext.parallelize(['2', '10', '2', '12', '3', '3'])  rdd1 = rdd.map(lambda x: (x, 1))   .reduceByKey(lambda a, b: a   b)   .map(lambda x: f"{x[0]}:{x[1]}")  print(rdd1.collect()) #['10:1', '12:1', '3:2', '2:2']