Hive列转行、行转列

简单说一下Hive行转列、列转行的方式。

写在前面

看到一篇文章,看的我很难受。(下面是一张图片)

Hive列转行、行转列_第1张图片

这玩意SQL,语法它对吗?就搁这列转行?浪费时间!

上个Demo

先拿这个数据来实现一个简单的行转列和列转行
Hive列转行、行转列_第2张图片

表名就都叫hero吧,英雄属性(hero_type)、英雄名s(hero_names)、英雄名(hero_name)

行转列

也就是上面的表1到表2。

select
	hero_type as "英雄属性",
	hero_name as "英雄名"
from hero
lateral view explode(split(hero_names, ",")) lat as hero_name;
	

列转行

也就是上面的表2到表1

select 
	hero_type,
	concat_ws(",", collect_list(hero_name))
from hero 
group by hero_type;

参考

hive函数document:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF


之后再细细总结吧,先这样。

你可能感兴趣的:(Hive,行转列,列转行)