准备好数据
此处列的关系模式是 ( 电影名,电影种类 )
概念
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后面用