hive - 带横向视图的 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 节点?
解决方案
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
这些方面的东西应该起作用
推荐阅读
- ubuntu - Ubuntu 18.04 新网络计划/IP 配置(pointopoint?)(需要示例)
- node.js - Docker - 多个 NodeJS 命令
- docker-compose - Docker Compose 挂载卷错误:没有这样的文件或目录
- java - 寻找更优雅的解决方案来移动角色
- javascript - JavaScript中如何判断一年是否为闰年
- firebase - 功能:来自模拟器的错误。解析函数触发器时出错
- c# - .NET (C# 或 VB) - 如何让 Windows 了解系统在播放声音时不会处于空闲状态
- html - CSS响应式两列,多行为一列
- visual-studio - 如何在 ASP .NET Core 2.0 项目中为不同的发布配置文件使用不同的 web.config 文件
- c# - 如何将文件路径设置为当前目录的根目录