hive-列转行

Lateral view explode转换数组数据到多行。
举例说明:

创建测试表

create table test_explode(
    name varchar(100),
    phones array<string>,
    cities array<string>
);

添加测试数据

insert overwrite table  test_explode select 'AAA',array("123456","678901"),array("city1","city2")

查看数据

namephonescities
AAA[“123456”, “678901”][“city1”,“city2”]

使用explode

select 
    name, 
    phone_number, 
    city 
from default.test_explode
lateral view explode(phones) pn1 as phone_number
lateral view explode(cities) pn2 as city 
AAA     123456  city1
AAA     123456  city2
AAA     678901  city1
AAA     678901  city2

使用posexplode

select
    name, 
    phone_number, 
    city 
from default.test_explode
lateral view posexplode(phones) pn as pos_phone, phone_number
lateral view posexplode(cities) pn as pos_city, city 
where 
    pos_phone == pos_city
AAA     123456  city1
AAA     678901  city2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值