У меня есть следующий оператор:
import = BashOperator(
task_id='import',
bash_command="""python3 script.py `{{ var.value.run_value }}` 'file.json'""",
dag=dag)
Когда я смотрю на шаблон, я вижу:
python3 script.py `2018-09-13 11:53:38.725089` 'file.json'
Пока отлично.
Однако мой сценарий не работает с этим вводом:
if __name__ == '__main__':
if str(sys.argv[1]):
time_value = str(sys.argv[1])[:-7] # from 2018-09-13 11:01:18.287705 to 2018-09-13 11:01:18
else:
time_value = '1900-01-01 00:00:00'
requestedDate = time_value.split(' ', 1)[0] #From 2018-08-20 15:00:00 get only 2018-08-20
requestedTime = (time_value.split(' ', 1)[1])[:-3] #From 2018-08-20 15:00:00 get only 15:00
pathConfigFile = (sys.argv[2])
Это не работает.
То, что я хочу, это:
time_value = YYYY-MM-DD HH:MM:SS
requestedDate = YYYY-MM-DD
requestedTime = HH:MM:SS
pathConfigFile = 2nd parameter given.
Воздушный поток показывает мне:
{bash_operator.py:101} INFO - SyntaxError: invalid syntax
Кроме того, я даже не могу напечатать ввод.
Когда я пробую код без Airflow как чистый скрипт на python, у меня не возникает никаких проблем.
Я должен отметить. Воздушный поток работает под Python 2.7
, но скрипт выполняется под Python 3
В чем проблема?