首先创建一个测试表 test 将需求表明。
id name
1 yy,tl,dd
2 xy,dl,dz
想要得到的结果是
1 yy
1 tl
1 dd
2 xy
2 dl
2 dz
思路:
需要将name通过','进行切割(split),得到数组结果集,就需要考虑如何将这个数组和id如何输出,此时就要借助explode,
而hive不支持explode的直接使用,还需要lateral view去实现。
下面给出对应的sql语句:
select
a.id,
b.rename
from test a
lateral view explode(split(a.name,',')) b as rename;
得到的结果即为:
id rename
1 yy
1 tl
1 dd
2 xy
2 dl
2 dz