sgu*_*sgu 8 pdb apache-spark pyspark
我想在仍然使用纱线的同时单步执行 python-spark 代码。我目前的做法是启动 pyspark shell,复制粘贴,然后逐行执行代码。我想知道是否有更好的方法。
pdb.set_trace()如果它有效,将是一个更有效的选择。我用spark-submit --master yarn --deploy-mode client. 程序确实停止了,并在pdb.set_trace()被调用的那一行给了我一个 shell 。但是,在 shell 中输入的任何 pdb 命令都会挂起。的pdb.set_trace()插入,正如我理解,应在本地运行的驱动器和附接有终端执行火花函数调用之间。我读了这篇文章如何在调试模式下调用 pyspark?这似乎表明不依赖 IDE(PyCharm)就不可能使用 pdb。但是,如果可以交互式运行 spark 代码,那么应该有一种方法可以让 python-spark“一直运行到这一行,并给我一个用于 REPL 的 shell(交互式使用)。我还没有找到任何方法来做到这一点. 任何建议/参考表示赞赏。
小智 6
我也经历过pdb挂掉的情况。我找到了pdb_clone,它的作用就像一个魅力。
首先,安装pdb_clone
> pip install pdb_clone
Run Code Online (Sandbox Code Playgroud)
然后,将这些行包含在您要调试的位置。
from pdb_clone import pdb
pdb.set_trace_remote()
Run Code Online (Sandbox Code Playgroud)
当您的程序位于该行时,在另一个终端上运行 pdb-attach 命令。
> pdb-attach
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1976 次 |
| 最近记录: |