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成为一行

相关推荐
小戈爱学习15 小时前
CDP集群中通过Hive外部表迁移HBase数据的操作记录
hive·hadoop·hbase
随心............1 天前
hive专题面试总结2
数据仓库·hive·hadoop
wyn200011282 天前
Hive学习笔记
hive·笔记·学习
beijingliushao2 天前
26-数据仓库与Apache Hive
hive
大数据狂人3 天前
从 Hive 数仓出发,全面剖析 StarRocks、MySQL、HBase 的使用场景与区别
hive·mysql·hbase
青木川崎3 天前
Hive_sql如何计算连续签到天数
hive·hadoop·sql
Jay Kay3 天前
hive新增列之后插入新数据时,新列为NULL的解决办法
数据仓库·hive·hadoop
Zhang.jialei4 天前
HiveMQ 2024.9 设计与开发文档
hive·物联网·activemq
Java烘焙师4 天前
架构师必备:实时对账与离线对账
hive·mysql·架构·对账
让头发掉下来5 天前
Sqoop详细学习文档
大数据·hive·hadoop·hbase·sqoop