天天看點

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函數