在hive和presto中创建命名结构的通用语法

gzszwxb4  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(550)

我试图定义一个sql视图,它从源结构数据类型中选取元素的子集,并创建一个新的结构。在Hive里我可以做到:

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不理解这种语法。
问题是,有没有可能有一个视图定义同时适用于hive和presto?

ie3xauqp

ie3xauqp1#

问题是,有没有可能有一个视图定义同时适用于hive和presto?
很遗憾,没有。

相关问题