我可以像下面这样在python代码中访问宏:
partition_dt = macros.ds_add(ds, 1)
但是我无法弄清楚如何掌握似乎只能在模板中访问的
ds
变量本身。有指针吗? 最佳答案
我假设您要调用AirFlow ds内置的默认变量之一-执行日期为YYYY-MM-DD
要仅调用ds,您可以执行以下操作:
EXEC_DATE = '{{ ds }}'
调用您想要的内容-macros.ds_add:
EXEC_DATE = '{{ macros.ds_add(ds, 1) }}'
并以这种方式加载它:
T1 = BashOperator(\
task_id='test_ds',
bash_command='echo ' + EXEC_DATE
dag=DAG)
如果您想格式化它(就像我必须的那样),可以这样做:
EXEC_DATE = '{{ macros.ds_format(macros.ds_add(ds, 1), "%Y-%m-%d", "%Y%m%d") }}'