我试图在pyspark中分解一个json字符串,并将一个列的值作为列名。在我的 Dataframe 中,我有JSON字符串,如下所示:
{"AA02": {"param": "F7VH", "value": "QP3"}}
{"AA01": {"param": "F7VH", "value": "CKA"}}
我需要从这个列生成一个JSON文件,就像
{
"AA02": {
"param": "F7VH",
"value": "QP3"
},
"AA01": {
"param": "F7VH",
"value": "CKA"
}
}
我尝试了很多方法,比如旋转,使用模式的to_json。但没有什么能帮助我解决这个问题。我正在考虑一种方法,将整个列的值作为JSON,并创建一个新的 Dataframe ,如:
df_new = df.select(col("to_json"), json_tuple(col("to_json"), "param", "value")).toDF("id", "param","value")
这一回,
有没有什么方法可以只使用PySpark来实现这一点,或者我应该使用vanilla python来实现这一点?
1条答案
按热度按时间ulydmbyx1#
您正在尝试从嵌套的JSON中提取值,因此需要在应用
json_tuple
之前获取嵌套的JSON。