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函数一起使用,它能够将一列数据拆成多行数据,并且对拆分后结果进行聚合,即将多行结果组合成一个支持别名的虚拟表。相当于拆出一张虚拟表,与原表进行关联。

相关推荐
tumeng071118 小时前
HDFS的架构优势与基本操作
hadoop·hdfs·架构
蓝眸少年CY20 小时前
Hive - 函数、压缩与优化
数据仓库·hive·hadoop
仗剑_走天涯21 小时前
Hadoop 安装
大数据·hadoop·分布式
sunxunyong1 天前
HDFS nnsdy重新配置启动
大数据·hadoop·hdfs
bukeyiwanshui1 天前
Hadoop环境搭建
大数据·hadoop·分布式
Jianghong Jian1 天前
HDFS常用的JAVA API
大数据·hadoop·hdfs
2501_933329551 天前
品牌公关的底层重构:Infoseek舆情系统如何用AI中台破解“按键伤企”难题
数据仓库·人工智能·重构·数据库开发
迈巴赫车主1 天前
大数据:Hadoop(MapReduce)
大数据·hadoop·mapreduce
jasnet_u1 天前
CentOS上搭建hadoop-3.3.6集群(3节点)
hadoop·centos
hashiqimiya2 天前
windows的hadoop集群环境直接配
大数据·hadoop·分布式