Переопределение воздушного потока 'ds' в функции макроса - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь передать значение динамической даты в макрос-функцию ds_format.

DEFAULT_DATE= '{{ ds }}'
__init__(self, exec_date=DEFAULT_DATE): self.exec_date = exec_date

Теперь у меня есть несколько макросов внутри функций, таких как

{{macros.ds_format(ds, "%Y-%m-%d", "%Y%m%d")}} 

Но я хочу передать exec_date в макрос как

"""{{ macros.ds_format(""" + self.exec_date + """, "%Y-%m-%d", "%d%m%Y") }}""" 

Является ли это правильным способом передачи значения в микро в Airflow (jinja2)?или же.Есть ли другой способ передать динамическое значение (exec_date)?.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Не проще ли вместо этого просто использовать {{ds_nodash}}?

https://airflow.apache.org/code.html#macros

0 голосов
/ 25 сентября 2018

Вам нужно просто передать следующее:

"""{{ macros.ds_format(ds, "%Y-%m-%d", "%d%m%Y") }}""" 

Примером является https://stackoverflow.com/a/52137676/5691525

Отредактировано :

Почему бы неВы используете следующий код, если вы просто хотите использовать дату исполнения:

EXEC_DATE = "{{ execution_date.strftime('"%d%m%Y"') }}"

Если вы хотите просто использовать переменную, зачем вообще использовать jinja?Просто используйте обычный питон datetime, который можно увидеть в этом посте: Как превратить дату и время питона в строку с читаемым форматом даты?

...