我已经收到了一个json文件作为API的输入,这里是json示例。
json_data =
{
"field1": "value1",
"field2": "value2",
"message_records": [
{
"field3": "value3",
"field4": "value4"
},
{
"field5": "value5",
"field6": "value6"
}
],
"messages": [
{
"field7": "value3",
"field8": "value4"
},
{
"field9": "value5",
"field10": "value6"
},
{
"field11": "value5",
"field12": "value6"
}
]
}
如何使用Python将JSON数据扁平化到单独的行中并将数据加载到dataframe中。这里消息,具有嵌套数组的message_records需要加载到单独的记录中。将json文件转换为pyspark Dataframe
这里field1,field2是message_records和messages的常用字段,我需要将message_records数据写入一个单独的文件,将messages数据写入一个单独的文件
2条答案
按热度按时间mm9b1k5b1#
您可以使用下面的代码在单独的行中创建,并将数据写入message_records和messages的单独文件中。
使用
field1
和field2
创建 Dataframe 。因为这两个都是message_records和messages。这里我使用
zipWithIndex
添加index
列,以便它可以在索引上连接。接下来,创建dataframe并通过循环message_records中的每个项目合并到最终的dataframe,如下所示。
与下面的消息相同
最后,将这些数据写入csv文件。
js4nwp542#
你可以在this SO answer中找到答案。
你只需要改变你调用paras的方式。我以前
得到了