理解Lateral View和explode

準備好數據

在這裏插入圖片描述
此處列的關係模式是 ( 電影名,電影種類 )

概念

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:

  1. 在udtf前面用
  2. 在from baseTable後面用

實例

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章