如何为数值类型指定 BeamSQL UDF

How to specify BeamSQL UDF for Numeric Types

我正在尝试将用户定义函数 (UDF) 添加到 Beam 管道中的 SqlTransform,但 SQL 解析器似乎无法理解该函数的类型。我得到的错误是:

No match found for function signature IF(<BOOLEAN>, <NUMERIC>, <NUMERIC>)

我已经尝试为一堆不同的类型(DoubleFloatLongInteger)定义它,但我不明白我是如何做到的可以用 Beam 能理解的方式来写。

有没有什么方法可以为 UDF 提供类型提示,以编写处理任意数字类型的 UDF?

看来,你应该使用BigDecimal

这里有一个类似的问题:

我最终发现问题出在我的代码注册 UDF 上。您因未注册 UDF 而收到的错误消息似乎与您使用不兼容类型编写的错误消息相同。仅使用 'Double' 似乎工作正常。