使用Lateral View和Json_Tuple的HIVE查询

3

我有一个像下面这样的json文件:

{"client":[{"name":"xyz","id":"123"}]}

我已经创建了Hive外部表。
create external table clients (client  STRING) LOCATION '  '  

我把json文件放到了表格位置。

我正在尝试使用LATERAL VIEW和JSON_TUPLE获取名称和ID字段。

select v2.name,v2.id
from clients c
lateral view json_tuple(c.client,'client') v1 as client
lateral view json_tuble(v1.client,'id','name') v2 as id,name  

如果json文件中没有方括号,上述查询会有效。

在使用LATERAL VIEW、JSON_TUPLE时,如何处理json文件中的数组节点,我找不到相关信息。

1个回答

0

把'['替换成''怎么样?

select v2.name,v2.id
from clients c
lateral view json_tuple(regexp_replace(c.client,'[|]',''),'client') v1 as client
lateral view json_tuble(v1.client,'id','name') v2 as id,name  

大致上这样应该可以工作


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接