【发布时间】:2020-06-22 10:19:03
【问题描述】:
我已经收集了 JSON 数据,例如:
{"body":{"metrics":[{"a":1,"a1":1.1,"properties":{"propA":"name","propB":"age"}},{"b":2}]}}
{"body":{"metrics":[{"c":3}]}}
我可以使用select get_json_object(get_json_object(columnA,'$.Body'),'$.metrics') from... 来提取嵌套的 json 数组,例如:
[{"a":1,"a1":1.1,"a2":{"propA":"name","propB":"age"}},{"b":2}]
[{"c":3}]
我想将它们转换成如下行:
{"a":1,"a1":1.1,"a2":{"propA":"name","propB":"age"}}
{"b":2}
{"c":3}
get_json_object 返回的数组似乎是字符串,当我使用later view 时,它总是说:
UDFArgumentException explode() takes an array or a map as a parameter
每个数组的长度是不确定的,我无权将 jar 文件上传到活动的新 udf 或 serde 类。如何实现这一点...
【问题讨论】:
-
你是说这是 STRING: [{"a":1},{"b":2}] 吗?
-
@leftjoin 感谢您的回复。我不确定......它是由
get_json_object返回的,它看起来像字符串......或者你有更好的主意吗?顺便说一句,我刚刚修改了原来的问题帖子。