1. 程式人生 > 其它 >大資料之Hive:其他常用查詢函式之列轉行

大資料之Hive:其他常用查詢函式之列轉行

技術標籤:大資料系列二

列轉行
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;