Как указать версию python при запуске impala-shell внутри airflow

#python #airflow

#python #воздушный поток

Вопрос:

Интересно, поддерживается ли это или нет, но есть много вариантов использования, которые необходимо запускать impala-shell, что я попробовал и увидел (безуспешно), так это то, что impala-shell все еще работает на python 2, хотя p2 указан в impala-shell.py По какой-то неизвестной причине Airflow не переключается на p2 с p3 и, следовательно, не выполняется для кодов, написанных на p2 в impala-shell.py , один пример ниже:

 task1 = BashOperator(
    task_id='test_impala-shell',
    bash_command="impala-shell -i hadoop01 -B -q 'select * from sr.sr2010' -o sr2010.csv '--output_delimiter=|'",
    dag=dag)
  

ошибка:

Ошибка синтаксиса: отсутствуют круглые скобки при вызове ‘print’

Итак, вопросы здесь:

  1. почему указанная версия python 2 в impala-shell.py не используется в качестве языка интерпретатора?
  2. как настроить dag или задачу в airflow для запуска другой версии python?

Спасибо. Мы высоко ценим любой общий доступ / просвещение / подсказку.

Ответ №1:

BashOperator в Airflow ничего не знает о версиях python или impala — он просто выполняет команды в оболочке.

Вероятной причиной отличий от самостоятельного запуска этих команд могут быть переменные среды, особенно PATH.