gpt4 book ai didi

airflow - 如何从宏中获取 Airflow 时区信息?

转载 作者:行者123 更新时间:2023-12-05 07:24:39 25 4
gpt4 key购买 nike

背景

我尝试在周一至周五的每天晚上 10 点 America/New_York 运行 DAG。 DAG 运行的脚本在它运行的那一天作为输入时区(周一至周五晚上 10 点)。当我将此脚本作为 Airflow DAG 运行时,日期来自宏 {{ ds_nodash }}

问题

当 Airflow 运行时,到纽约时间晚上 10 点时,UTC 时间已经是第二天了。由于 Airflow 使用 UTC,执行日期提前一天,所以当我的 DAG 使用宏 {{ ds_nodash }} 时,它提前一天。

问题:

有没有办法将时区调整日期作为 Airflow 上的宏,或者是我自己调整宏的唯一解决方案?

最佳答案

根据airflow documentation ,默认变量(例如 {{ ds_nodash }})采用 UTC。所以,我们需要自己转换它们。它可以是这样的:

# ...
local_ds_nodash = '{{ dag.timezone.convert(execution_date).strftime("%Y%m%d") }}'
# ...
create_file = BashOperator(
task_id='create_file',
bash_command=f'touch {local_ds_nodash}.txt'
)

关于airflow - 如何从宏中获取 Airflow 时区信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55289846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com