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

  • Post author:
  • Post category:其他




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;



版权声明:本文为weixin_44911081原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。