在hive和presto中创建named_struct的通用语法



我正在尝试定义一个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没有结构数据类型,而是有ROW。它使用以下语法:

select
id,
CAST(ROW(bkg.cnt, bkg.val) as row(cnt integer, val double)) as bkg
from mybkgtable

但是,Hive不理解这种语法。

问题是,是否可以有一个既适用于hive又适用于presto的视图定义?

问题是,是否可以有一个既适用于hive又适用于presto的视图定义?

遗憾的是,没有

您可以使用coral在hiveql中编写视图定义,并将其转换为presto。

https://github.com/linkedin/coral

https://engineering.linkedin.com/blog/2020/coral

相关内容

  • 没有找到相关文章

最新更新