Lateral View

语法定义:

lateralView: LATERAL VIEW udtf(expression) table AS columns(',', columns)*

fromClause: FROM baseTable (lateralView)*

描述:

Lateral view 通常和split, explode等udtf一起封装使用,它能够将一行数据拆分成多行数据,在此基础上可以对拆分后的数据进行聚合。lateral view 首先为原始表的每行调用udtf, udtf会把一行拆分成一行或者多行,lateral vew再把结果聚合,产生一个支持别名表的虚拟表。

例如:

select pageid, adid from pageAds lateral view explode(adid_list) adTable as adid;

select adid, count(1) from pageAds lateral view explode(adid_list) adTable as adid group by adid;


多个lateral view 语句

描述:一个from语句后可以跟多个lateral view 语句,后面的lateral view 语句能够引用它前面的所有表和列名

select myCol1, col2 from baseTable lateral view explode(col1) myTable1 as myCol1;

加上一个table view

select myCol1, myCol2 from baseTable laberal view explode(col1) myTable1 as myCol1 laberal view explode(col2) myTable2 as myCol2;



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值