HIVE 行转列以及列转行

列转行

语法:
虚拟表
lateral view explode(split(tag,’,’)) 表别名 as 列别名

表test
列名: id tag
在这里插入图片描述
tag如果是数组就不用split,数组的话直接lateral view explode(tag)

select id,tag_new from test lateral view explode(split(tag,',')) nums as tag_new

HIVE 行转列以及列转行_第1张图片

行转列

使用函数:concat_ws(’,’,collect_set(column))
说明:collect_list 不去重,collect_set 去重。 column 的数据类型要求是 string

eg:如表:t_column_to_row ,根据id,对tag_new 进行合并
HIVE 行转列以及列转行_第2张图片
select id,

concat_ws(’,’,collect_list(tag_new)) as tag_col

from t_column_to_row

group by id;

HIVE 行转列以及列转行_第3张图片

你可能感兴趣的:(校招,hive)