横向视图的HIVE查询,Json_Tuple

时间:2018-08-24 17:21:14

标签: hive hiveql

我有一个像这样的json文件

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

我已经创建了配置单元外部表

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文件中的ARRAY节点?

1 个答案:

答案 0 :(得分:0)

用regexp_re将'['替换为”怎么样?

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  

按照这些原则行事