带横向视图的 HIVE 查询,Json_Tuple
Posted
技术标签:
【中文标题】带横向视图的 HIVE 查询,Json_Tuple【英文标题】:HIVE query with Lateral View,Json_Tuple 【发布时间】:2018-08-24 17:21:14 【问题描述】:我有一个这样的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文件中的ARRAY节点?
【问题讨论】:
【参考方案1】: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
按照这些思路应该可以工作
【讨论】:
以上是关于带横向视图的 HIVE 查询,Json_Tuple的主要内容,如果未能解决你的问题,请参考以下文章