準備好數據
此處列的關係模式是 ( 電影名,電影種類 )
概念
EXPLODE(col):將hive一列中複雜的array或者map結構拆分成多行
Lateral view:它其實就是用來和像類似explode這種UDTF函數聯用的,lateral view 會將UDTF生成的結果放到一個虛擬表中,然後這個虛擬表會和原本的數據表每個id做jion,來達到將UTDF中的數據分開
這個UTDF函數將原始表中的一行中的一個屬性拆開成虛擬表,這個虛擬表和原始表的關係就如下:
原始表
(電影名,類型)
第一行:xihongshishoufu xiju,jingdian,xiao
對應經過UDTF後的虛擬表:
xihongshishoufu xiju
xihongshishoufu jingdian
xihongshishoufu xiao
對兩個表做jion操作就可以獲得所有的數據
格式
LATERAL VIEW udtf(expression) tableAlias(虛擬表名字) AS columnAlias(要查詢的名字)
在2個地方用Lateral view:
- 在udtf前面用
- 在from baseTable後面用