环境:spark2.4.5
source.json文件:
{
"a_key": "1",
"a_pro": "2",
"a_con": "3",
"b_key": "4",
"b_pro": "5",
"b_con": "6",
"c_key": "7",
"c_pro": "8",
"c_con": "9",
...
}
traget.json格式:
{
"factors": [
{
"name": "a",
"key": "1",
"pros": "2",
"cons": "3"
},
{
"name": "b",
"key": "4",
"pros": "5",
"cons": "6"
},
{
"name": "c",
"key": "7",
"pros": "8",
"cons": "9"
},
...
]
}
正如您所看到的,目标'name'是源代码键的一部分。例如,“a”是“a\u key”、“a\u pro”、“a\u con”的“name”。我真的不知道如何从键中提取值,并进行“分组”转换。谁能给我一些建议吗?
3条答案
按热度按时间lvmkulzt1#
无需涉及Dataframe,一些简单的字符串和字典操作即可:
yrefmtwq2#
您的数据很奇怪,但以下代码可以帮助您解决此问题:
source.json文件:
代码:
traget.json格式:
您可以将上述代码放入测试方法并运行它以查看所需的结果。
希望能对你有所帮助。
jc3wubiy3#
iiuc首先从输入json创建Dataframe
现在从现有列创建所需的列
现在透视dataframe并将结果收集为json对象