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

相关推荐
howard200512 小时前
Hive实战任务 - 9.1 实现词频统计
hive·词频统计
满目山河•18 小时前
二、复制三台虚拟机
hive·hadoop·hbase
howard20051 天前
Hive实战任务 - 9.3 实现学生信息排序和统计
hive·排序·汇总·学生信息
番茄撒旦在上1 天前
什么样的表适合做拉链表
大数据·数据仓库·hive
howard20051 天前
Hive实战任务 - 9.5 实现网址去重
hive·网址去重
howard20051 天前
Hive实战任务 - 9.4 分科汇总求月考平均分
hive·分科汇总月考平均分
howard20051 天前
Hive实战任务 - 9.2 统计总分与平均分
hive·统计总分与平均分
yumgpkpm2 天前
Iceberg在Cloudera CDP集群详细操作步骤
大数据·人工智能·hive·zookeeper·spark·开源·cloudera
清平乐的技术专栏2 天前
Hive SQL中COALESCE 函数和NVL()函数、IFNULL函数区别
hive·hadoop·sql
爱吃大芒果2 天前
Flutter 列表优化:ListView 性能调优与复杂列表实现
开发语言·hive·hadoop·flutter·华为