Вот моя попытка избежать двойного взрыва:
with tbl as (select array(1,2,3,4,5) as x, array('a','b','c','d','e') as y)
select collect_list(struct(xi, y[i-1]))
from tbl lateral view posexplode(x) tbl2 as xi, i;
Однако я столкнулся со странной ошибкой:
Error: Error while compiling statement: FAILED: IllegalArgumentException Size requested for unknown type: java.util.Collection (state=42000,code=40000)
Я смог обойти ее, используя
set hive.execution.engine=mr;
, который не так быстр / оптимизирован, как использование искры или тэза, как задний конец.