【发布时间】:2021-03-23 12:48:43
【问题描述】:
我有多个来自任何 restapi 的 json,但我不知道它的架构。我无法使用 dataframes 的 explode 功能,因为我不知道由 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。
【问题讨论】:
标签: scala apache-spark multidimensional-array apache-spark-sql