如何为数值类型指定 BeamSQL UDF
How to specify BeamSQL UDF for Numeric Types
我正在尝试将用户定义函数 (UDF) 添加到 Beam 管道中的 SqlTransform,但 SQL 解析器似乎无法理解该函数的类型。我得到的错误是:
No match found for function signature IF(<BOOLEAN>, <NUMERIC>, <NUMERIC>)
我已经尝试为一堆不同的类型(Double
、Float
、Long
、Integer
)定义它,但我不明白我是如何做到的可以用 Beam 能理解的方式来写。
有没有什么方法可以为 UDF 提供类型提示,以编写处理任意数字类型的 UDF?
看来,你应该使用BigDecimal
。
这里有一个类似的问题:
我最终发现问题出在我的代码注册 UDF 上。您因未注册 UDF 而收到的错误消息似乎与您使用不兼容类型编写的错误消息相同。仅使用 'Double' 似乎工作正常。
我正在尝试将用户定义函数 (UDF) 添加到 Beam 管道中的 SqlTransform,但 SQL 解析器似乎无法理解该函数的类型。我得到的错误是:
No match found for function signature IF(<BOOLEAN>, <NUMERIC>, <NUMERIC>)
我已经尝试为一堆不同的类型(Double
、Float
、Long
、Integer
)定义它,但我不明白我是如何做到的可以用 Beam 能理解的方式来写。
有没有什么方法可以为 UDF 提供类型提示,以编写处理任意数字类型的 UDF?
看来,你应该使用BigDecimal
。
这里有一个类似的问题:
我最终发现问题出在我的代码注册 UDF 上。您因未注册 UDF 而收到的错误消息似乎与您使用不兼容类型编写的错误消息相同。仅使用 'Double' 似乎工作正常。