理解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后面用

实例

在这里插入图片描述

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