Hive:解析嵌套的json列表



我有包含嵌套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。

你也可以在蜂窝上使用explodelateral VIEW

笔记这段SQL代码只是为了失败,它可能有一些错误

编辑:正如@leftjoin所指出的,不可能用get_json_object的返回来处理这个king。也许解决方案是使用udf来处理这种情况。

最新更新