天天看点

Flink快速构建项目quickstart - 自定义UDF函数

官方推荐两种构建方式,第一

创建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快速构建项目quickstart - 自定义UDF函数

 启动Flink-sql-client

发现报错:

原因:Multiply 类的构造器是int类型的参数,但是FlinkSQL只允许是Interger类型,见官方文档

Flink快速构建项目quickstart - 自定义UDF函数

ref: https://ci.apache.org/projects/flink/flink-docs-release-1.12/zh/dev/table/sqlClient.html

修改 Multiply 类的构造器 参数为Integer,重新打包上传。

成功启动sql-client端。使用两个自定义UDF函数,没问题!

Flink快速构建项目quickstart - 自定义UDF函数