Я пытаюсь определить представление sql, которое выбирает подмножество элементов из типа данных исходной структуры и создает новую структуру. В улье я могу сделать это:
create view myview as
select
id,
named_struct("cnt", bkg.cnt, "val", bkg.val) as bkg
from mybkgtable
Это работает. Проблема в том, что когда это представление вызывается из presto, оно завершается с: Function named_struct not registered
Обнаружено, что presto не имеет struct типа данных, но вместо этого имеет ROW, Он работает с этим синтаксисом:
select
id,
CAST(ROW(bkg.cnt, bkg.val) as row(cnt integer, val double)) as bkg
from mybkgtable
Однако этот синтаксис не понят Hive.
Вопрос в том, возможно ли иметь одно определение представления, которое работает как для улья, так и для presto?