我可以像下面这样在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") }}'

09-28 15:07