1、如果要使用一次爆炸函数可以得到多个新的列吗
可以的,使用posexplode
1. 数据介绍
主要包括三列,分别是班级、姓名以及成绩,数据表名是default.classinfo:
2. 单列Explode
首先来看下最基本的,我们如何把student这一列中的数据由一行变成多行。这里需要使用split和
explode,并结合lateral view实现。
代码如下:
select
class,student_name
from
default.classinfo
lateral view explode(split(student,',')) t as student_name
结果如下:
3. 单列Posexplode
接下来,我们想要给每个同学来一个编号,假设编号就按姓名的顺序,此时我们要用到另一个hive
函数,叫做posexplode,代码如下:
select
class,student_index + 1 as s