Flink SQL Client注册Python UDF完整流程
概述
本文是對[1]的復現
支持的版本是
| 組件 | 版本 | 備注 |
| Flink | 1.12.0 | apache版本 |
| apache-flink | 1.12.0 | pip安裝 |
| python | 3.6.10 | anaconda虛擬環境 |
注意:
①除了Flink集群要配置好,pip下面還要另外安裝apache-flink(必須安裝,不要遺漏).
②小版本號必須嚴格一致,例如下面這樣:
Flink1.12.0與apache-flink1.11.2搭配使用是絕對不允許的.
?
完整代碼與配置文件
https://github.com/appleyuchi/Flink_SQL_Client_UDF
?
完整操作步驟
運行時采用的命令是:
$FLINK_HOME/bin/sql-client.sh embedded -e $FLINK_HOME/conf/env.yaml -pyfs $FLINK_HOME/conf/test.py官網[1]中的寫法如下:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
# full example of python dependency management$ sql-client.sh embedded -e env.yaml -pyfs test.py,/home/my/func2.py -pyreq /home/my/requirements.txt#/home/my/pacakges_dir -pyarch py37.zip#venv -pyexec venv/py37/bin/python?
使用下面命令查看已經注冊func1:
show functions;?
操作流程截圖
?
實驗結果
?
?
附錄
可能遇到的報錯:
Flink SQL> select func1(`en_behavior`) as a from dim_behavior;
[ERROR] Could not execute SQL statement. Reason:
java.lang.IllegalStateException: Process died with exit code 0
這是因為你的Flink集群版本和apache-flink版本不一致.
?
Reference
[1]FLIP-114: Support Python UDF in SQL Client
總結
以上是生活随笔為你收集整理的Flink SQL Client注册Python UDF完整流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 意外险怎么买 怎么买意外险
- 下一篇: 《高性能python》第一章-理解高性能