Я подаю заявку в python / pyspark через spark shell, используя скрипт оболочки.Тем не менее, даже когда код Python завершается с ошибкой, код возврата, который я получаю, равен 0. Однако я хочу либо завершить сценарий родительской оболочки, либо выполнить требуемое действие, если я получаю ненулевой статус.
У меня уже естьпопробовано:
- Перехват исключения в блоке python и возврат ненулевого статуса, однако задание spark по-прежнему возвращает нулевой статус.
- Уничтожение родительского сценария оболочки из 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')