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

实例

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值