官方推薦兩種建構方式,第一
建立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函數,沒問題!