我在其中一个字段中有嵌套Map的数据。例如,数据位于一个名为“customers”的表中,如下所示:
姓名:比尔·琼斯
地址:{“billing”:{“street”:“123 main”,“city”:“chicago”,“state”:“il”},“shipping”:{“street”:“432 copper”,“city”:“new york”,“state”:“ny”}}
我可以写什么样的查询来分解整个数据集?
我从以下几点开始:
select name, key1, value1
from customers
lateral view explode(address) table1 as key1, value1
这让我有一部分的路要走。它将“billing”和“shipping”字段分开。然而,我不能爆炸出剩下的。我试过了,但收到一条错误信息:
select name, key1, key2, value2
from customers
lateral view explode(address) table1 as key1, value1
lateral view explode(value1) table2 as key2, value2
我知道我做得不对,但不确定解决办法是什么?
谢谢,
车坦
2条答案
按热度按时间ds97pgxw1#
根据您的评论,您有以下结构
姓名(字符串)、地址(Map>)、电子邮件(字符串)、电话(字符串)、支出(整数)
这里是一个字符串的Map,而不是一个Map,所以你可以用下面的方法来查询数据
mrphzbgm2#
演示
方案1
方案2