单列转换成多行
比如:
pageid paged
page1 a,b,c
page2 a,b
要转换成
page1 a
page1 b
page1 c
page2 a
page2 b
select pageid,p from test lateral view explode(split(paged,',')) adtable as p;
通过split拆成多个元素的集合,再通过explode打散成多行,lateral view作用是解决explode这种UDTF函数拆成的数据不能与其他字段共同服务问题
在此基础上,如果需要添加where语句,就在最后添加即可。
select pageid,p from test lateral view explode(split(paged,',')) adtable as p where pageid = 'page1';