【发布时间】:2016-12-20 15:46:04
【问题描述】:
我有一个这样的数据框
root
|-- sum_id: long (nullable = true)
|-- json: string (nullable = true)
+-------+------------------------------+
|sum_id |json |
+-------+------------------------------+
|8124455|[{"itemId":11},{"itemId":12}] |
|8124457|[{"itemId":53}] |
|8124458|[{"itemId":11},{"itemId":33}] |
+-------+------------------------------+
我想用 Scala 来实现这一点
root
|-- sum_id: long (nullable = true)
|-- itemId: int(nullable = true)
+-------+--------+
|sum_id |itemId |
+-------+--------+
|8124455|11 |
|8124455|12 |
|8124457|53 |
|8124458|11 |
|8124458|33 |
+-------+--------+
我尝试了什么:
使用
get_json_object,但是列是JSON对象数组,所以我认为应该先分解成对象,但是怎么做呢?尝试将列
json从StringType转换为ArrayType(StringType),但出现data type mismatch异常。
请指导我如何解决这个问题。
【问题讨论】:
标签: scala apache-spark