【发布时间】:2020-07-07 06:45:11
【问题描述】:
我有一张表,其中有一列 id。现在我想编写一个配置单元查询,输入逗号分隔的id 值,拆分它们并逐行插入它们。例如:
输入 - abc,def,ghi
输出 -
-----id-----
abc
def
ghi
【问题讨论】:
-
您能分享一下您的尝试吗?
标签: sql split hive hiveql explode
我有一张表,其中有一列 id。现在我想编写一个配置单元查询,输入逗号分隔的id 值,拆分它们并逐行插入它们。例如:
输入 - abc,def,ghi
输出 -
-----id-----
abc
def
ghi
【问题讨论】:
标签: sql split hive hiveql explode
使用lateral view [outer] + 分解和拆分:
insert into table t2
select
s.id
from table1 t1
lateral view explode (split(t1.id,',')) s as id
演示:
select
s.id
from (select 'abc,def,ghi' as id) t1
lateral view explode (split(t1.id,',')) s as id
结果:
id
abc
def
ghi
split(t1.id,',') 生成一个数组。 explode - 是一个表生成函数 (UDTF),它将数组转换为行。 lateral view 首先将 UDTF 应用于基表的每一行,然后将结果输出行连接到输入行。
【讨论】: