将值插入到多行中,行之间用逗号分隔

eiee3dmh  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(343)

我有一张只有一列的table id . 现在我想编写一个以逗号分隔的输入为输入的配置单元查询 id 值,将其拆分并逐行插入。例如:
输入- ,def,ghi 输出-

-----id-----
abc
def
ghi
0g0grzrc

0g0grzrc1#

使用侧视图[外部]+分解和拆分:

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应用于基表的每一行,然后将生成的输出行与输入行连接起来。

相关问题