【问题标题】:Debugging pyspark in ipdb-fashion在 ipdb-fashion 中调试 pyspark
【发布时间】:2017-03-15 11:19:22
【问题描述】:
在开发python代码时,我使用包ipdb。
这会停止在那里执行 python 代码,我在其中插入了ipdb.set_trace(),并为我提供了一个 python 解释器命令行。
但是,在我为 pyspark 开发并使用 spark-submit 发送的 python 代码中,ipdb 包不起作用。
所以我的问题是:有没有一种方法可以以类似于使用 ipdb 包的方式调试我的 pyspark 代码?
注意:显然,对于在远程节点上执行的 python 代码,这是不可能的。但是当使用 spark-submit 和选项 --master local[1] 时,我希望它可能是可能的。
附言。这里有一个相关的问题,但范围更窄:How to PySpark Codes in Debug Jupyter Notebook
【问题讨论】:
标签:
python
debugging
pyspark
ipdb
【解决方案1】:
PYSPARK_DRIVER_PYTHON=ipython pyspark
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 2.4.3
/_/
Using Python version 3.7.1 (default, Jun 16 2019 23:56:28)
SparkSession available as 'spark'.
In [1]: sc.stop()
In [2]: run -d main.py
Breakpoint 1 at /Users/andrii/work/demo/main.py:1
NOTE: Enter 'c' at the ipdb> prompt to continue execution.
> /Users/andrii/work/demo/main.py(1)<module>()
1---> 1 print(123)
2 import ipdb;ipdb.set_trace()
3 a = 2
4 b = 3
或
In [3]: run main.py
123
> /Users/andrii/work/demo/main.py(3)<module>()
2 import ipdb;ipdb.set_trace()
----> 3 a = 2
4 b = 3