带有横向 View 的 HIVE 查询,Json_Tuple

标签 hive hiveql

我有一个这样的json文件

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

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

create external table clients (client  STRING) LOCATION '  '  

我将 json 文件放在表位置。

我正在尝试使用横向 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节点?

最佳答案

用 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  

按照这些思路应该可以工作

关于带有横向 View 的 HIVE 查询,Json_Tuple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52009148/

相关文章:

performance - 将大表从一个 Hive 数据库转移到另一个

hadoop - 在配置单元中使用别名时出错

arrays - 配置单元 : casting array<string> to array<int> in query

hadoop - hive : Replace string/pattern in row if it exists else do nothing

hadoop - 默认情况下,HIVE 元数据存储在哪里?

hadoop - 没有使用配置单元的并行处理

hadoop - 无法将参数传递给配置单元脚本

java - Hive jdbc.query(sql, rowmapper) 抛出 UnCatogarized 异常

sql - Hive 中的窗口函数

hadoop - Hive CREATE TABLE LIKE 另一个表设置分区键