Hive的split,explode和lateral view(保姆级教程)

split函数:

split函数:分割字符串,返回值是array
使用desc function split命令查看hive中的split的使用的基本语法。
请添加图片描述
split函数根据regex来截取字符串,regex是正则表达式。

具体使用:select split(str,',') from student;
split返回值是array,经常搭配explode使用,select explode(split(str,',')) from student;

explode函数和lateral view:

explode函数:将hive中的一列中复杂的array或者map分成多行。
功能:列转行
使用desc function explode命令查看hive中的split的使用的基本语法。
在这里插入图片描述
机翻:将数组的元素分隔为多行,或将贴图的元素分隔为多行和多列。
具体使用:select explode(split(str,',')) from student;
lateral view:侧视图配合explode,一个语句生成把单行数据拆解成多行后的数据结果集。

具体使用:

create table if not exists employee(
	name string,
	work_place array<string>,
	gender_age struct<gender:string,age:int>,
	skills_score map<string,int>,
	depart_title map<string,array<string>>
)
comment 'this is an internal table'
row format delimited fields terminated by '|'
collection items terminated by ','
map keys terminated by ':'
lines terminated by 'n';

select name,skill,score from employee lateral view explode(skills_score) sk_sc as skill,score;

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>