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;