hive—炸裂函数explode/posexplode

1、Explode炸裂函数

hive某列一行中复杂的 array 或 map 结构拆分成多行(只能输入array或map)

语法:

sql 复制代码
select explode(字段) as 字段命名 from 表名;

举例:

1)explode(array)使得结果中将array列表里的每个元素生成一行

sql 复制代码
select explode(array('1','2','3')) DD

2)explode(map)使得结果中将map里的每一对元素作为一行,key为一列,value为一列

sql 复制代码
select explode(map('A','1','B','2','C','3'));
select explode(map('Chinese','100','Math','88','English','38'));
局限性:

1、不能关联原有的表中的其他字段

2、不能与group by、cluster by、distribute by、sort by联用

3、不能进行UDTF嵌套

2、posexplode()函数

explode():对一列进行炸裂可以使用

posexplode():对两列进行多行转换,可以将index和数据都取出来,使用两次posexplode并令两次取到的index相等即可

举例:

sql 复制代码
select posexplode(collect_set('AA'))

collect_set:将某字段进行去重处理,返回array类型

1)实例一

3、Lateral View

Lateral View配合 split, explode 等UDTF函数一起使用,它能够将一列数据拆成多行数据,并且对拆分后结果进行聚合,即将多行结果组合成一个支持别名的虚拟表。相当于拆出一张虚拟表,与原表进行关联。

相关推荐
段一凡-华北理工大学4 小时前
工业领域的Hadoop架构学习~系列文章12:Hadoop集群监控与运维
大数据·人工智能·hadoop·学习·架构·高炉炼铁·高炉炼铁智能化
Leo.yuan4 小时前
MySQL到Hive数据同步怎么选工具?FineDataLink全链路方案实测
数据库·hive·mysql
Database_Cool_4 小时前
数据仓库物化视图是什么?阿里云 AnalyticDB MySQL 实时物化视图最佳实践
数据库·数据仓库·mysql
Database_Cool_6 小时前
PB 级海量数据需要实时分析,应该选择什么数仓产品?阿里云 AnalyticDB MySQL 是首选
数据库·数据仓库·mysql·阿里云
Nefu_lyh6 小时前
【Hive】02 Hive 分区与分桶:深入理解 Hive 分区与分桶的原理、执行过程、Bucket Map Join、SMB Join 以及最佳实践
数据仓库·hive·hadoop
二宝哥6 小时前
大数据之数据仓库与数据库区别
大数据·数据库·数据仓库
段一凡-华北理工大学6 小时前
工业领域的Hadoop架构学习~系列文章11:Kerberos安全认证
数据仓库·hadoop·学习·架构·高炉炼铁·工业智能体·高炉炼铁智能化
muddjsv6 小时前
HBase与Hadoop:基于什么开发?深度剖析与架构图
数据库·hadoop·hbase
muddjsv6 小时前
HBase 与 Hadoop 安装与上手使用全指导
数据库·hadoop·hbase
Nefu_lyh6 小时前
【Hive】一、Hive数据类型:基本数据类型、复杂数据类型
数据仓库·hive·hadoop