我在我的Beam管道中运行一个简单的Sql转换:
SELECT CONVERT_TIMEZONE('America/New York', 'UTC',(TIMESTAMP '1970-01-01 00:00:00' + OriginalTZ * INTERVAL '1' SECOND)) as MyUTC FROM PCOLLECTION但是我得到了一个错误:
No match found for function signature CONVERT_TIMEZONE(<CHARACTER>, <CHARACTER>, <TIMESTAMP>)但是根据方解石文档,这就是它的语法。
我使用的是Apache Beam版本2.29。但其中的方解石sql版本似乎是2019年的旧版本2.20。
如何在我的方解石sql中使用CONVERT_TIMEZONE?
发布于 2021-06-15 05:30:18
Apache Beam目前在方解石SQL1.20上,而CONVERT_TIMEZONE被添加到1.21。
一种解决方法是使用普通ParDo或映射来转换时区。如果您使用的是Python,可以使用以下示例:Python Timezone conversion。
发布于 2021-06-15 05:33:05
我确认这是不起作用的:https://github.com/apache/beam/pull/15010/files
但是,您可以使用SqlTransform#registerUdf添加自己的代码(如果您愿意,也可以使用Calcite的Apache2.0许可代码)。
https://stackoverflow.com/questions/67941068
复制相似问题