Проблема, с которой я сталкиваюсь, состоит в том, что у меня есть файл (или несколько файлов), заполненный словарями, и я пытаюсь затем попасть в информационный кадр. Входной файл может выглядеть следующим образом:
{"A":"value1", "B":"value2"}
{"A":"value2", "B":"value3"}
{"A":"value4", "B":"value5", "C":"value6"}
Проблемы, с которыми я сталкиваюсь:
- Словари не разделены новой строкой, запятой или чем-то еще. Это однострочный файл, и, к сожалению, я ничего не могу с этим поделать.
- Словари могут иметь разное количество ключей. Но у меня есть схема конечного кадра данных.
В приведенном выше примере желаемый результат будет:
A B C
value1 value2 null
value2 value3 null
value4 value5 value6
То, что я пробовал до сих пор:
spark_sql_context.read.json(path_to_file)
Это читает только первый словарь и возвращает фрейм данных pyspark с одной строкой. Я также попытался прочитать его как текстовый файл:
data_rdd = spark_context.textFile(path_to_file)
Проблема в том, что я не знаю:
- как разбить строку, так как нет словаря между словарями и Словари
- имеют разную длину.
Буду признателен, если вы укажете мне метод или решение этой проблемы.