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

相关推荐
冬至喵喵20 小时前
【hive】函数集锦:窗口函数、列转行、日期函数
大数据·数据仓库·hive·hadoop
weixin_472339462 天前
Doris查询Hive数据:实现高效跨数据源分析的实践指南
数据仓库·hive·hadoop
神奇侠20242 天前
Hive SQL常见操作
hive·hadoop·sql
itachi-uchiha3 天前
Docker部署Hive大数据组件
大数据·hive·docker
viperrrrrrrrrr73 天前
大数据学习(131)-Hive数据分析函数总结
大数据·hive·学习
qq_408413393 天前
spark 执行 hive sql数据丢失
hive·sql·spark
yt948323 天前
如何在IDE中通过Spark操作Hive
ide·hive·spark
viperrrrrrrrrr75 天前
大数据学习(129)-Hive数据分析
大数据·hive·学习
伍六星5 天前
图片上传问题解决方案与实践
大数据·hive·hadoop
杨DaB5 天前
【JavaWeb】Maven、Servlet、cookie/session
hive·servlet·maven