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

相关推荐
weixin_3077791312 分钟前
PySPARK带多组参数和标签的SparkSQL批量数据导出到S3的程序
大数据·数据仓库·python·sql·spark
字节全栈_kYu4 小时前
Hadoop大数据应用:HDFS 集群节点缩容
大数据·hadoop·hdfs
weixin_307779136 小时前
AWS EMR使用Apache Kylin快速分析大数据
大数据·数据仓库·云计算·aws·kylin
想做富婆10 小时前
Hive:静态分区(分区语法,多级分区,分区的查看修改增加删除)
数据仓库·hive·hadoop
一张假钞1 天前
Spark SQL读写Hive Table部署
hive·sql·spark
想做富婆1 天前
Hive:窗口函数[ntile, first_value,row_number() ,rank(),dens_rank()]和自定义函数
数据仓库·hive·hadoop
好记性+烂笔头1 天前
4 Hadoop 面试真题
大数据·hadoop·面试
B站计算机毕业设计超人2 天前
计算机毕业设计Python+CNN卷积神经网络考研院校推荐系统 考研分数线预测 考研推荐系统 考研爬虫 考研大数据 Hadoop 大数据毕设 机器学习
hadoop·python·机器学习·spark·网络爬虫·课程设计·数据可视化
字节全栈_rJF2 天前
Hive 整合 Spark 全教程 (Hive on Spark)
hive·hadoop·spark
好记性+烂笔头3 天前
2 MapReduce
大数据·hadoop·mapreduce