[Hive] lateral view explode

当在Hive中使用 LATERAL VIEW EXPLODE 时,

它用于将一个复杂类型(如数组或Map)的列展开成多行数据,

并将这些展开后的数据与其他列进行关联。


下面是一个简单的例子来解释 LATERAL VIEW EXPLODE 的用法:

假设有一个包含学生姓名和对应课程的表格 student_courses,其中的列 courses 是一个数组类型,表示学生所选修的课程。

复制代码
+---------+----------------------------+
| student |          courses           |
+---------+----------------------------+
|   Alice | [Math, Science, History]   |
|    Bob  | [English, Geography]       |
+---------+----------------------------+

现在我们想要将每个学生选修的课程展开成多行数据。可以使用 LATERAL VIEW EXPLODE 来实现这一点。

查询语句如下:

sql 复制代码
SELECT student, course
FROM student_courses
LATERAL VIEW EXPLODE(courses) exploded AS course;

结果将会是:

复制代码
+---------+---------+
| student |  course |
+---------+---------+
|   Alice |   Math  |
|   Alice | Science |
|   Alice | History |
|    Bob  | English |
|    Bob  |Geography|
+---------+---------+

通过 LATERAL VIEW EXPLODE,我们将每个学生的课程数组展开成了多行数据,并与原始表格的其他列保持关联。这样,我们可以更方便地处理每个学生的每门课程信息。

需要注意的是,在使用 LATERAL VIEW EXPLODE 时,

需要在表格名称后面使用别名(如上例中的 "exploded"),

以便将展开后的数据与其他列进行关联。

这样,我们可以在查询中引用新生成的列

相关推荐
君不见,青丝成雪4 小时前
Hadoop技术栈(四)HIVE常用函数汇总
大数据·数据库·数据仓库·hive·sql
最初的↘那颗心14 小时前
Flink Stream API 源码走读 - print()
java·大数据·hadoop·flink·实时计算
君不见,青丝成雪15 小时前
hadoop技术栈(九)Hbase替代方案
大数据·hadoop·hbase
晴天彩虹雨15 小时前
存算分离与云原生:数据平台的新基石
大数据·hadoop·云原生·spark
yatingliu201916 小时前
HiveQL | 个人学习笔记
hive·笔记·sql·学习
SelectDB技术团队18 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术
程序员小羊!21 小时前
数据仓库&OLTP&OLAP&维度讲解
数据仓库
最初的↘那颗心1 天前
Flink Stream API - 源码开发需求描述
java·大数据·hadoop·flink·实时计算
Lx3521 天前
MapReduce作业调试技巧:从本地测试到集群运行
大数据·hadoop
BYSJMG1 天前
计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
大数据·hadoop·python·信息可视化·spark·django·课程设计