我有一个 Dataframe 在下面的格式。
输入:
| id
|Name_type
|Name
|Car
|
| - ------|- ------|- ------|- ------|
| 1
|First
|rob
|Nissan
|
| 2
|First
|joe
|x1米11米1x|
| 1
|Last
|dent
|Infiniti
|
| 2
|Last
|Kent
|Genesis
|
需要通过在给定键列的格式下方附加行值来转换为JSON列,如下所示。
预期结果:
| x1米20英寸1x|json_column
|
| - ------|- ------|
| 1
|{"First_Name":"rob","First_*Car", "Nissan","Last_Name":"dent","Last_Car", "Infiniti"}
|
| 2
|{"First_Name":"joe","First_Car", "Hyundai","Last_Name":"kent","Last_Car", "Genesis"}
|
使用以下代码段column_set = ['Name','Car'] df = df.withColumn("json_data", to_json(struct(\[df\[x\] for x in column_set\])))
'我能够产生数据
| id
|Name_type
|Json_data
|
| - ------|- ------|- ------|
| x1米30英寸1x|First
|{"Name":"rob", "Car": "Nissan"}
|
| 2
|First
|{"Name":"joe", "Car": "Hyundai"}
|
| 1
|Last
|{"Name":"dent", "Car": "infiniti"}
|
| x1米39英寸|x1米40英寸1x|{"Name":"kent", "Car": "Genesis"}
|
我可以使用to_json为给定行创建一个json列。
'但无法确定如何将行值附加到列名,以及如何将给定键列转换为嵌套json。''
1条答案
按热度按时间w8ntj3qf1#
要完成这个任务,首先需要对输入 Dataframe 进行一些操作,可以按
id
列进行分组,然后围绕Name_type
列进行透视,如下所示:然后,您可以使用与您用于获得所需结果的代码完全相同的代码,但使用4列而不是2列: