Hi Xingbo,

多谢指导,亲测有效。
源python文件运行一会儿本身就结束运行了,过阵子后才会跳到断点里。
所以源python文件只是做了个提交的动作,实际执行都是异步执行,是否可以这么理解?
如果是的话,之前已经运行过很多次源python文件,是否本地已经在后台异步运行了多次?是的话是否能监控到这些任务?



[email protected]
 
发件人: Xingbo Huang
发送时间: 2020-12-15 09:59
收件人: user-zh
主题: Re: pyflink是否可调试
Hi,
想要调试可以使用的方式为
1. 在PyCharm里创建一个Python Remote Debug
run -> Python Remote Debug -> + -> 选择一个端口(比如6789)
 
2. 安装pydevd-pycharm(你PyCharm使用的python解释器)
pip install pydevd-pycharm
其实上一步那个界面也有指导你安装了
 
3.  将以下代码插入到你要断点的udaf的代码前面(这段代码其实也是来自第一步创建remote debug里面)
import pydevd_pycharm
pydevd_pycharm.settrace('localhost', port=6789, stdoutToServer=True,
stderrToServer=True)
 
例如
@udaf(result_type=DataTypes.INT(), func_type="pandas")
def mean_udaf(v):
    import pydevd_pycharm
    pydevd_pycharm.settrace('localhost', port=6789, stdoutToServer=True,
stderrToServer=True)
    v.mean()
 
4. 在你的PyCharm里面点击Debug启动你刚刚创建的Remote Debug Server
 
5. 直接点击Run运行你的作业,这个时候会断点在你的udaf的代码里面了
 
Best,
Xingbo
 
[email protected] <[email protected]> 于2020年12月15日周二 上午9:25写道:
 
>
> 基于flink1.12.0版本的pyflink开发了一个程序,使用了udaf,想在本地的PyCharm环境调试该功能,在udaf的第一行打了断点,但是没法进入。
> 可以确认程序有正确运行,因为sink到kafka里看了是有数据的。
> 请问是否需要什么配置才能进行调试。
>
>
>
> [email protected]
>

回复