pyspark преобразует список кортежей смешанного типа в фрейм данных, давая нулевые значения - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть функция, которая вычисляет что-то и возвращает список кортежей, это выглядит так:

def check():
   [...]
   return [("valid": 1, "wrong": 4, "lines":["line1","line2"])]

Затем я хотел бы сложить все эти значения вместе, чтобы получить окончательные значения

rdd = lines.mapPartitions(lambda x: check()).reduceByKey(lambda a,b: a+b)

результат примерно такой:

[("valid": 102), ("false": 322), ("lines": ["test1", "test2", "test2"]))

Моя цель - иметь возможность записать в файл (или несколько файлов) кортеж 'lines' и в отдельный файл действительные и неправильные значения.

Мой вопрос: есть ли лучшая структура данных из того, что я сейчас использую?Если нет, как я могу найти кортеж "lines" в моем списке?

Или, может быть, лучше, возможно ли преобразовать этот RDD в Dataframe, где я мог бы сделать выбор SQL на нем?

Я пытался rdd.toDF().show(), но по некоторым причинам столбец значений "строк" становится null

...