首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Calcite SQL不能识别Apache Beam中的CONVERT_TIMEZONE

Calcite SQL不能识别Apache Beam中的CONVERT_TIMEZONE
EN

Stack Overflow用户
提问于 2021-06-12 01:15:25
回答 2查看 98关注 0票数 1

我在我的Beam管道中运行一个简单的Sql转换:

代码语言:javascript
复制
SELECT CONVERT_TIMEZONE('America/New York', 'UTC',(TIMESTAMP '1970-01-01 00:00:00' + OriginalTZ * INTERVAL '1' SECOND)) as MyUTC FROM PCOLLECTION

但是我得到了一个错误:

代码语言:javascript
复制
 No match found for function signature CONVERT_TIMEZONE(<CHARACTER>, <CHARACTER>, <TIMESTAMP>)

但是根据方解石文档,这就是它的语法。

我使用的是Apache Beam版本2.29。但其中的方解石sql版本似乎是2019年的旧版本2.20。

如何在我的方解石sql中使用CONVERT_TIMEZONE?

EN

回答 2

Stack Overflow用户

发布于 2021-06-15 05:30:18

Apache Beam目前在方解石SQL1.20上,而CONVERT_TIMEZONE被添加到1.21。

一种解决方法是使用普通ParDo或映射来转换时区。如果您使用的是Python,可以使用以下示例:Python Timezone conversion

票数 2
EN

Stack Overflow用户

发布于 2021-06-15 05:33:05

我确认这是不起作用的:https://github.com/apache/beam/pull/15010/files

但是,您可以使用SqlTransform#registerUdf添加自己的代码(如果您愿意,也可以使用Calcite的Apache2.0许可代码)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67941068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档