大資料之Hive:其他常用查詢函式之列轉行
阿新 • • 發佈:2021-01-23
技術標籤:大資料系列二
列轉行
1.函式說明
EXPLODE(col):將hive一列中複雜的array或者map結構拆分成多行。
LATERAL VIEW
用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias
解釋:用於和split, explode等UDTF一起使用,它能夠將一列資料拆成多行資料,在此基礎上可以對拆分後的資料進行聚合。
2.資料準備
3.需求
將電影分類中的陣列資料展開。結果如下:
《疑犯追蹤》 懸疑 《疑犯追蹤》 動作 《疑犯追蹤》 科幻 《疑犯追蹤》 劇情 《Lie to me》 懸疑 《Lie to me》 警匪 《Lie to me》 動作 《Lie to me》 心理 《Lie to me》 劇情 《戰狼2》 戰爭 《戰狼2》 動作 《戰狼2》 災難
4.建立本地movie.txt,匯入資料
[[email protected] 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;