Воздушный поток: передать предыдущий вторник с даты исполнения BashOperator - PullRequest
0 голосов
/ 19 октября 2018

У меня есть даг, который работает еженедельно по воскресеньям.Есть одна задача, BashOperator, настроенная следующим образом:

t = BashOperator(
   task_id='print_date',
   bash_command="echo Previous Tuesday is: "

def get_latest_build_date(dt):
   bd = dt + relativedelta(weekday=TU(-1))
   return bd.strftime('%Y%m%d')

Как передать текущую дату выполнения функции get_latest_build_date?

bash_command="echo Previous Tuesday is: {{ get_latest_build_date(ds) }} не будет работать с шаблонизатором дзиндзя.

1 Ответ

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

Используйте user_defined_macros из DAG.

def get_latest_build_date(dt):
   bd = dt + relativedelta(weekday=TU(-1))
   return bd.strftime('%Y%m%d')

with DAG('name',
         ...,
         user_defined_macros={'prior_tues': get_latest_build_date},) as dag:

  t = BashOperator(
     task_id='print_date',
     bash_command="echo Previous Tuesday is: {{ prior_tues(execution_date) }}"
...