在IPDB时尚中调试Pyspark



开发python代码时,我使用软件包ipdb

这阻止了我插入ipdb.set_trace()的Python代码的执行,并给我提供了Python解释器命令行。

但是,在我为pyspark开发的Python代码中,并且我使用spark-submit发送ipdb软件包不起作用。

所以我的问题是:有没有办法,在其中我可以以类似于使用ipdb软件包的方式调试我的Pyspark代码?

注意:显然,对于在远程节点上执行的Python代码,这是不可能的。但是,当将spark-submit与选项--master local[1]一起使用时,我希望可能是可能的。

ps。有一个相关的问题,但是有一个较窄的范围,这里:如何在调试jupyter笔记本中使用pyspark代码

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

相关内容

  • 没有找到相关文章

最新更新