获取通过Spark Shell提交的python代码的返回状态

时间:2019-04-11 00:50:10

标签: pyspark return status spark-shell

我正在使用shell脚本通过spark shell在python / pyspark中提交应用程序。但是,即使python代码失败,我得到的返回代码也为0。但是,如果我的状态为非零,我希望终止父shell脚本或执行所需的操作。

我已经尝试过:

  1. 在python块中捕获异常并返回非零状态,但是spark作业仍返回零状态。
  2. 从python杀死父shell脚本(使用pid),但仍然可以优雅地杀死spark并返回零。

这是我的工作方式:

.bin/spark-submit test.py param1 > log.txt 2>&1 disown

status=$?

这就是我返回非零状态的方式,

 try:

       code block

 except Exception as e:

       sys.exit(2)

这就是我正在杀死父进程的方法,

  try:

      code block

  except Exception as e:

       os.kill(os.getppid(),signal.SIGTERM)
       os.system('pkill -f test.sh')

0 个答案:

没有答案