【发布时间】:2019-10-31 19:20:49
【问题描述】:
我有以下数据框:
df.show()
+--------------------+--------------------+----+--------+---------+--------------------+--------+--------------------+
| address| coordinates| id|latitude|longitude| name|position| json|
+--------------------+--------------------+----+--------+---------+--------------------+--------+--------------------+
|Balfour St / Brun...|[-27.463431, 15.352472|79.0| null| null|79 - BALFOUR ST /...| null|[-27.463431, 153.041031]|
+--------------------+--------------------+----+--------+---------+--------------------+--------+--------------------+
我想展平 json 列。 我做到了:
val jsonSchema = StructType(Seq(
StructField("latitude", DoubleType, nullable = true),
StructField("longitude", DoubleType, nullable = true)))
val a = df.select(from_json(col("json"), jsonSchema) as "content")
但是
a.show() gives me :
+-------+
|content|
+-------+
| null|
+-------+
知道如何正确解析 json col 并在第二个数据帧 (a) 中获取内容 col 不为 null 吗?
原始数据显示为:
{
"id": 79,
"name": "79 - BALFOUR ST / BRUNSWICK ST",
"address": "Balfour St / Brunswick St",
"coordinates": {
"latitude": -27.463431,
"longitude": 153.041031
}
}
非常感谢
【问题讨论】:
-
您的 JSON 列值不清楚。你能分享一个示例 JSON 值和预期的输出吗?这会很有帮助
-
@BalajiReddy 完成请再次检查
-
可以分享一下df的schema吗?
标签: json scala apache-spark