#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']