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

相关推荐
看海的四叔9 小时前
【SQL】SQL同环比计算的多种实现方式
数据库·hive·sql·mysql·数据分析·同环比
菜鸟小码21 小时前
Hive数据类型全解析:从基础到复杂类型实战指南
数据仓库·hive·hadoop
隐于花海,等待花开1 天前
1.CONCAT / CONCAT_WS 函数深度解析
大数据·hive
菜鸟小码1 天前
深入浅出 Hive 数据类型:从入门到实战
数据仓库·hive·hadoop
隐于花海,等待花开4 天前
Hive 常用函数详细总结
数据仓库·hive·hadoop
隐于花海,等待花开6 天前
COLLECT_LIST函数详解
hive
隐于花海,等待花开6 天前
数据开发常问的技术性问题及解答
大数据·hive
隐于花海,等待花开6 天前
窗口函数之排序函数详细解读及示例
大数据·数据库·hive
隐于花海,等待花开6 天前
Hive 正则函数详解与示例
数据仓库·hive·hadoop
隐于花海,等待花开6 天前
Hive专题:数据开发面试高频题(TopN、留存、连续登录等)
hive·hadoop·面试