Получить статус возврата кода Python, отправленного через спарк-оболочку - PullRequest
0 голосов
/ 11 апреля 2019

Я подаю заявку в python / pyspark через spark shell, используя скрипт оболочки.Тем не менее, даже когда код Python завершается с ошибкой, код возврата, который я получаю, равен 0. Однако я хочу либо завершить сценарий родительской оболочки, либо выполнить требуемое действие, если я получаю ненулевой статус.

У меня уже естьпопробовано:

  1. Перехват исключения в блоке python и возврат ненулевого статуса, однако задание spark по-прежнему возвращает нулевой статус.
  2. Уничтожение родительского сценария оболочки из python (с использованием pid), все равно он изящно убивает искры остановок и возвращает ноль.

Вот как я называю работу:

.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')
...