Как сохранить JSON из dataframe с определенным форматом? - PullRequest
2 голосов
/ 25 марта 2019

Я пытаюсь сохранить следующий фрейм данных pyspark в json:

ID VARIABLE_1
1      1
2      0
3      0
4      1
5      0

но мне нужно, чтобы json был таким:

{ "1": {"VARIABLE_1": 1} }
{ "2": {"VARIABLE_1": 0} }
{ "3": {"VARIABLE_1": 0} }
{ "4": {"VARIABLE_1": 1} }
{ "5": {"VARIABLE_1": 0} }

При сохранении в json я получаю следующее:

{ "ID":"1", "VARIABLE_1": 1} 
{ "ID":"2", "VARIABLE_1": 0} 
{ "ID":"3", "VARIABLE_1": 0} 
{ "ID":"4", "VARIABLE_1": 1} 
{ "ID":"5", "VARIABLE_1": 0} 

Я пытаюсь сохранить с

df.write.mode("overwrite").format("json").save(json_path)

Я попытался использовать create_map и получил такой кадр данных:

NEW_COLUMN_NAME
{ "1": {"VARIABLE_1": 1} }
{ "2": {"VARIABLE_1": 0} }
{ "3": {"VARIABLE_1": 0} }
{ "4": {"VARIABLE_1": 1} }
{ "5": {"VARIABLE_1": 0} } 

Но когда я пытаюсь сохранить этот новый фрейм данных в json, я получаю:

{"NEW_COLUMN_NAME":{"1":{"VARIABLE_1":1}}}
{"NEW_COLUMN_NAME":{"2":{"VARIABLE_1":0}}}
{"NEW_COLUMN_NAME":{"3":{"VARIABLE_1":0}}}
{"NEW_COLUMN_NAME":{"4":{"VARIABLE_1":1}}}
{"NEW_COLUMN_NAME":{"5":{"VARIABLE_1":0}}}

Я действительно не знаю, что делать, у кого-то есть идеи?

Спасибо!

1 Ответ

0 голосов
/ 27 марта 2019

Как я исправил проблему:

-Использовал метод collect () для сбора фрейма данных create_map

-Используется для создания словаря с каждой строкой фрейма данных

-Используется json.dumps со словарем

-Сохраняется с использованием open (путь, "w")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...