HiveSQL之lateral view

lateral view是hiveQL中的一个高级功能,用于和表生成函数一起,来处理嵌套数组和结构的数据,特别是在处理复杂的数据结构如JSON或数组内嵌套数组时特别有用。它允许用户在每一行上应用TGF(表生成函数),将生成的元素作为多行返回,或者多列返回。

原理

常规情况下,SQL查询是对行进行操作的,每行数据都是独立的,如果想对一行中某列数据进行拆分成多行或者多列,SQL中的单独查询是不允许的。lateral view解决了这个问题,它允许将TGF结果,"侧视"到原始数行旁边,实际上是将TGF的输出与原始行的其他列结合起来形成新的行集。

表生成函数(table-generating functions)TGF

explode

将数组或者映射转换为多行,对于数组,每个元素成为一行;对于映射每个键值对成为一行。

SELECT id, number
FROM example_table
LATERAL VIEW explode(numbers) tbl AS number;

json_tuple

解析JSON格式的字符串,每个key成为一行

相关推荐
武子康6 小时前
大数据-259 离线数仓 - Griffin架构 修改配置 pom.xml sparkProperties 编译启动
xml·java·大数据·hive·hadoop·架构
出发行进20 小时前
Hive其四,Hive的数据导出,案例展示,表类型介绍
数据仓库·hive·hadoop
武子康21 小时前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
java·大数据·数据仓库·hive·hadoop·架构
lucky_syq1 天前
Hive SQL和Spark SQL的区别?
hive·sql·spark
武子康2 天前
大数据-257 离线数仓 - 数据质量监控 监控方法 Griffin架构
java·大数据·数据仓库·hive·hadoop·后端
清平乐的技术专栏3 天前
Hive SQL 查询所有函数
hive·hadoop·sql
csding113 天前
写入hive metastore报问题Permission denied: user=hadoop,inode=“/user/hive”
数据仓库·hive·hadoop
神秘打工猴3 天前
hive常用函数有哪些
hive
lucky_syq4 天前
Hive与HBase的区别有哪些
hive·hadoop·hbase
出发行进4 天前
Hive其五,使用技巧,数据查询,日志以及复杂类型的使用
大数据·hive·数据分析