大数据之Hive:hive函数讲解:列转行

Posted 浊酒南街

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据之Hive:hive函数讲解:列转行相关的知识,希望对你有一定的参考价值。

1.列转行

1.1函数说明

explode(col):将hive一列中复杂的array或者map结构拆分成多行。
lateral view
lateral view explode (split(字段),"\\,") tableAlias as columnAlias

1.2数据准备

moviecategory
《疑犯追踪悬疑,动作,科幻,剧情
《Lie to me》悬疑,警匪,动作,心理,剧情
《战狼2》战争,动作,灾难

1.3需求

将电影分类中的数组数据展开。结果如下:

moviecategory
《疑犯追踪》悬疑
《疑犯追踪》动作
《疑犯追踪》科幻
《疑犯追踪》剧情
《Lie to me》悬疑
《Lie to me》警匪
《Lie to me》动作
《Lie to me》心理
《Lie to me》剧情
《战狼2》战争
《战狼2》动作
《战狼2》灾难

4.创建本地movie.txt,导入数据

[hadoop@bigdata02 datas]$ vi movie.txt
《疑犯追踪》	悬疑,动作,科幻,剧情
《Lie to me》	悬疑,警匪,动作,心理,剧情
《战狼2》	战争,动作,灾难

5.创建hive表并导入数据

create table movie_info(
    movie string, 
    category array<string>) 
row format delimited fields terminated by "\\t"
collection items terminated by ",";
load data local inpath "/opt/module/datas/movie.txt" into table movie_info;

6.按需求查询数据

select
    movie,
    category_name
from 
 movie_info 
lateral view explode(category) table_tmp as category_name;

情况复杂下,多用如下方式

select
    movie,
    category_name
from 
 movie_info 
lateral view explode(split(category, "\\\\,")) table_tmp as category_name;

以上是关于大数据之Hive:hive函数讲解:列转行的主要内容,如果未能解决你的问题,请参考以下文章

大数据技术之Hive函数压缩和存储

大数据之hive:行列转换系列总结

hive函数之~行转列与列转行

大数据技术之_09_Hive学习_复习与总结

大数据之Hive:hive函数讲解:行转列

Hive 行转列 & 列转行