首页 > 解决方案 > 带横向视图的 HIVE 查询,Json_Tuple

问题描述

我有一个这样的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 节点?

标签: hivehiveql

解决方案


regexp_replace 用 '' 替换 '[' 怎么样?

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  

这些方面的东西应该起作用


推荐阅读