如何从特定格式的数据帧中保存JSON?

时间:2019-03-25 18:21:25

标签: json pyspark

我正在尝试将以下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 :(得分:0)

我如何解决此问题:

-使用collect()收集create_map数据框

-用于制作数据帧每一行的字典

-在字典中使用json.dumps

-使用open(path,“ w”)保存