hive列转行案例

Hedva ·
更新时间:2024-11-10
· 965 次阅读

hive列转行

1.函数说明

EXPLODE(col):将 hive 一列中复杂的 array 或者 map 结构拆分成多行。

LATERAL VIEW
用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias
解释:用于和 split, explode 等 UDTF 一起使用,它能够将一列数据拆成多行数据,在此
基础上可以对拆分后的数据进行聚合。

2.数据准备

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

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

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

5.创建 hive 表并导入数据

create table movie_info( movie string, category array) row format delimited fields terminated by "\t" collection items terminated by ","; load data local inpath "file_path" into table movie_info;

6.按需求查询数据

select movie,category_name from movie_info lateral view explode(category) table_tmp as category_name;
作者:酷酷的丁



转行 hive

需要 登录 后方可回复, 如果你还没有账号请 注册新账号