0

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

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

我已经尝试为一堆不同的类型(Double, Float, Long, Integer)定义它,但是看不到我如何以 Beam 可以理解的方式通用地编写它。

有没有办法给 UDF 提供类型提示,编写一个处理任意数字类型的方法?

4

2 回答 2

0

看来,你应该使用BigDecimal.

这是一个类似的问题:What is the equivalent Data type for Numeric in apache.beam.sdk.schemas.Schema.FieldType

于 2020-11-17T12:01:09.123 回答
0

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

于 2020-11-18T21:59:08.200 回答