select Impala 中的 stack() UDTF

select stack() UDTF in Impala

在 Hive 中,我可以像这样使用 stack() UDTF 对数据进行采样:

with students as ( 
select stack(5,
1,'Vikrant',
2,'Abhishek',
3,'Ragesh',
4,'Valeriy',
5,'Swarna') as (id, name)
)

select * from students;

In Presto 同样。

除了使用 ,我如何才能在 Impala 中做到这一点?

据我研究,Impala还不支持table生成函数。不幸的是,Impala 中的 no lateral view explode, no UDTF are possible 没有堆栈。

所以,唯一的办法就是:

with students as ( 
select 1 as id,'Vikrant'  as name union all
select 2 as id,'Abhishek' as name union all
select 3 as id,'Ragesh'   as name union all
select 4 as id,'Valeriy'  as name union all
select 5 as id,'Swarna'   as name
)

select * from students;