官方推荐两种构建方式,第一
创建flink的UDF需要Flink-table的jar包,ScalarFunction在table的依赖中
通过quickstart构建后,在pom.xml中加入依赖
创建java类
运行一下试试,发现报错
原因:pom.xml中的核心包都是<provided>的,调试时候注释掉<provieded>,采用默认值。
成功!
注释掉main方法,打包UDF类:
上传 jr-flinkudf-0.1.jar 到Flink的lib目录下。
修改 Flink的conf的目录下的 sql-client-defaults.yaml 文件

启动Flink-sql-client
发现报错:
原因:Multiply 类的构造器是int类型的参数,但是FlinkSQL只允许是Interger类型,见官方文档
ref: https://ci.apache.org/projects/flink/flink-docs-release-1.12/zh/dev/table/sqlClient.html
修改 Multiply 类的构造器 参数为Integer,重新打包上传。
成功启动sql-client端。使用两个自定义UDF函数,没问题!