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

相关推荐
隐于花海,等待花开3 天前
Hive 常用函数详细总结
数据仓库·hive·hadoop
隐于花海,等待花开4 天前
COLLECT_LIST函数详解
hive
隐于花海,等待花开4 天前
数据开发常问的技术性问题及解答
大数据·hive
隐于花海,等待花开5 天前
窗口函数之排序函数详细解读及示例
大数据·数据库·hive
隐于花海,等待花开5 天前
Hive 正则函数详解与示例
数据仓库·hive·hadoop
隐于花海,等待花开5 天前
Hive专题:数据开发面试高频题(TopN、留存、连续登录等)
hive·hadoop·面试
Hadoop_Liang6 天前
Hive的ORDER BY、SORT BY、DISTRIBUTE BY、CLUSTER BY对比及案例实践
数据仓库·hive·hadoop
杭州杭州杭州6 天前
数仓实验1
hive
杭州杭州杭州7 天前
数仓实验2
hive
杭州杭州杭州7 天前
数仓实验3
hive