【问题标题】:Chaining together 2 Airflow macros将 2 个 Airflow 宏链接在一起
【发布时间】:2017-06-13 21:35:25
【问题描述】:

目前有two Airflow macros 可用:ds_addds_format

我想知道同时使用它们的语法。

例如,我目前可以像这样使用其中一个来将日期添加 7 天:

dt7 = '{{ macros.ds_add(ds, 7) }}'

但是,我实际上需要做这样的事情并在不使用 datetime 或任何其他 python 包的情况下取回 YYYYMMDD 格式,因为我需要将其输入到 Operator 中:

dt7_fixed = '{{ macros.ds_add(ds_nodash, 7) }}'

但是ds_add不支持'YYYYMMDD'格式,只支持'YYYY-MM-DD'。

一种解决方法是use ds_format 也在那个单行中,但我无法理解正确的语法。

【问题讨论】:

    标签: airflow


    【解决方案1】:

    我相信这会做你想要的:

    {{ macros.ds_format(macros.ds_add(ds, 7), '%Y-%m-%d', '%Y%m%d') }}
    

    您应该像看待函数一样看待这些宏。 根据您上面包含的链接ds_format 接受 3 个参数、日期字符串和两个表示所需输入和输出格式的字符串。

    最初使用的ds_add 宏的输出是一个字符串,您可以在此处将其用作第一个参数。

    在源代码中请注意,这在引擎盖下使用了datetime

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-26
      • 2011-05-21
      • 2023-02-02
      • 2017-08-13
      • 2021-05-26
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多