频道澳门葡京手机版网址
登录注册
澳门葡京手机版网址 > 网络 > 其他 > 正文

posexplode用法举例

2018-04-23 10:16:01         来源:qq_20488317的博客  
收藏   我要投稿

posexplode用法举例

A表(shows表示访问过的城市列表,是有序的)

 

id citys
1 [tianjin,shanghai,beijing]

B表(show表示访问过的城市)

 

 

id city
1 shanghai
2 sichuan

假设现在需求是:判断B表中访问过的城市在A表shows中的位置。

1、由于A表的shows是数组,所以先用posexplode将A表按shows列展开

 select *  from A LATERAL VIEW posexplode(shows) t as pos, city

得到的结果是如下表,即可以看出按照shows这一列展开了,并且还给出了shows中元素的位置(第三列)

 

id citys t.pos t.city_single
1 [tianjin,shanghai,beijing] 0 tianjin
1 [tianjin,shanghai,beijing] 1 shanghai
1 [tianjin,shanghai,beijing] 2 beijing

2、下面merge A表和B表,找到B表中访问过的城市在A表shows中的位置

 

 select T2.city, T2,pos

        (select * from B) T1

        left outer join

        (select * from A LATERAL VIEW posexplode(shows) t as pos , city_single) T2

        on T1.id = T2.id and T1.city = T2.citys_single

merge后得到的结果是

 

Shanghai 2
null null

相关TAG标签 hive posexplode
上一篇:hive分组排序如何去掉前几条数据?
下一篇:网络管理进阶 - 别名与绑定
相关文章
图文推荐

关于大家 | 联系大家 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 澳门葡京手机版网址_澳门新莆京娱乐_www.88807.com - 点此进入--致力于做实用的IT技术学习网站

XML 地图 | Sitemap 地图