我有包含嵌套json列表的数据,比如:
{"id":"aaa", "list":[{"eventId":222},{"details":[{"sub1":333},{"sub2":444}]},{"name":555}]}
目标是提取";外部";列表,如
id data
aaa {"eventId":222}
aaa {"details":[{"sub1":333},{"sub2":444}]}
aaa {"name":555}
如何在不拆分内部嵌套json列表的情况下分解list
?感谢您的帮助。
您必须使用内置函数get_json_object或json_tupple
将json对象与hive posexplode一起从列表中检索值
例如,
SELECT get_json_object(json_object, $.id) as id,
posexplode(get_json_object(json_object, $.list)) as pos, val
FROM your table;
由此,您可以在pos、val列上使用get_json_object。
你也可以在蜂窝上使用explode
和lateral VIEW
笔记这段SQL代码只是为了失败,它可能有一些错误
编辑:正如@leftjoin所指出的,不可能用get_json_object的返回来处理这个king。也许解决方案是使用udf来处理这种情况。