我有多个来自任何restapi 的json,但我不知道它的架构。我无法使用 dataframes 的爆炸功能,因为我不知道由 Spark api 创建的列名称。
1.我们可以通过解码值来存储嵌套数组元素的键吗dataframe.schema.fields
,由于spark仅提供数据帧行中的值部分,并以顶级键作为列名。
数据框——
+--------------------+
| stackoverflow|
+--------------------+
|[[[Martin Odersky...|
+--------------------+
是否有任何最佳方法可以通过在运行时确定架构来使用数据帧方法来压平 json。
示例 Json -:
{
"stackoverflow": [{
"tag": {
"id": 1,
"name": "scala",
"author": "Martin Odersky",
"frameworks": [
{
"id": 1,
"name": "Play Framework"
},
{
"id": 2,
"name": "Akka Framework"
}
]
}
},
{
"tag": {
"id": 2,
"name": "java",
"author": "James Gosling",
"frameworks": [
{
"id": 1,
"name": "Apache Tomcat"
},
{
"id": 2,
"name": "Spring Boot"
}
]
}
}
]
}
注意 - 我们需要在 dataframe 中执行所有操作,因为有大量数据即将到来,我们无法解析每个 json。