调试
本页介绍如何在PyFlink进行调试
打印日志信息
Python UDF可以通过标准的Python logging模块记录上下文和调试信息。
@udf(input_types=[DataTypes.BIGINT(), DataTypes.BIGINT()], result_type=DataTypes.BIGINT())
def add(i, j):
import logging
logging.info("debug")
return i + j
查看日志
如果设置了环境变量FLINK_HOME
,日志将会放置在FLINK_HOME
指向目录的log目录之下。否则,日志将会放在安装的Pyflink模块的 log目录下。你可以通过执行下面的命令来查找PyFlink模块的log目录的路径:
$ python -c "import pyflink;import os;print(os.path.dirname(os.path.abspath(pyflink.__file__))+'/log')"
调试Python UDFs
你可以利用PyCharm提供的pydevd_pycharm
工具进行Python UDF的调试
在PyCharm里创建一个Python Remote Debug
run -> Python Remote Debug -> + -> 选择一个port (e.g. 6789)
安装
pydevd-pycharm
工具$ pip install pydevd-pycharm
在你的Python UDF里面添加如下的代码
import pydevd_pycharm
pydevd_pycharm.settrace('localhost', port=6789, stdoutToServer=True, stderrToServer=True)
启动刚刚创建的Python Remote Dubug Server
运行你的Python代码