Основной код PySpark переходит в состояние останова, когда выполняется в фоновом режиме, в то время как его подпроцесс пытается вывести в файл - PullRequest
0 голосов
/ 26 февраля 2020

Проблема в том, что мой основной код (Python, обернутый в сценарий bash, который выполняется в Spark в режиме клиента) переходит в состояние останова, когда его подпроцесс пытается сохранить выходные данные своей команды в локальном файле. * Подпроцесс 1001 *

выполняет скрипт beeline, который подключается к базе данных Hive и получает DDL таблицы.

Env : Spark 1.6, Python 2.7, Red Hat Linux 6.10 , Bash.

Часть кода, о которой идет речь:

bl_args = '--showHeader=false --outputformat=tsv2 -e "describe ' + srcTable + ';" '

with open(schema_file, 'w') as sf:
    subprocess.check_call("MybeelineScript " + bl_args,stdout=sf,shell=True)

MybeelineScript: просто однострочная оболочка, которая вызывает beeline -u "...."

Команда: nohup myMainWrapper. sh> myprog.out 2> & 1 &

Некоторые точки: Выходной файл создан, но он пуст. Код работает на переднем плане. Когда он останавливается, когда я выношу его на передний план, он продолжает бежать. Такое же поведение с использованием Popen.

Ценю вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...