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