#python #apache-spark #pyspark #rdd
#python #apache-spark #pyspark #rdd
Вопрос:
Я просто пытаюсь изучить PySpark, но меня смущает разница между следующими двумя RDD, я знаю, что один — это набор типов, а другой — список, но оба являются RDD
rdd = sc.parallelize([('a', 1), ('b', 1), ('a', 3)])
type(rdd)
и
rdd = sc.parallelize(['a, 1', 'b, 1', 'a, 3'])
type(rdd)
Код для обработки функций map и reduce:
priceMap= s.map(lambda o: (o.split(",")[0], float(o.split(",")[1])))
priceMap.reduceByKey(add).take(10)
Я могу легко выполнить функцию map / reduce для вторых данных rdd, но когда я пытаюсь выполнить map или reduce, я получаю следующую ошибку: итак, как мы можем преобразовать первый rdd во вторые данные rdd, или, если есть какой-либо способ устранить следующую ошибку, пожалуйста, помогите. Спасибо
Py4JJavaError: произошла ошибка при вызове z:org.apache.spark.api.python .PythonRDD.runJob.: org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задача 0 на этапе 162.0 не удалась 1 раз, последний сбой: потерянная задача 0.0 на этапе 162.0 (TID 3850, localhost, драйвер исполнителя): org.apache.spark.api.python.Исключение PythonException: трассировка (последний последний вызов):
Комментарии:
1. Обратная трассировка предполагает, что существует исключение python. Пожалуйста, покажите свой код map / reduce — ошибка, вероятно, происходит оттуда
2. @mck да, я обновил две строки кода для map и reduce, не могли бы вы мне помочь. Спасибо
3. s и add являются неопределенными переменными
4. поместите имя rdd вместо s, чтобы оно было rdd.map(…. и add — это функция, которую вы можете импортировать, ниже приведена библиотека, пожалуйста, импортируйте ее …… из operator import add
Ответ №1:
Для первого rdd вы можете заменить функцию map:
rdd = sc.parallelize([('a', 1), ('b', 1), ('a', 3)])
rdd.map(lambda o: (o[0], float(o[1]))).reduceByKey(add).collect()
Это потому split
, что работает только со строками, но не с кортежами.
Комментарии:
1. Я пробовал это, у меня не получилось, я попробую ваш код, любой увидит, работает ли это