gpt4 book ai didi

airflow - Airflow :PythonOperator:为什么要包含 'ds' arg?

转载 作者:行者123 更新时间:2023-12-03 21:17:42 26 4
gpt4 key购买 nike

在定义一个函数以供以后用作python_callable时,为什么将“ds”作为函数的第一个参数?

例如:

def python_func(ds, **kwargs):
pass

我查看了Airflow文档,但找不到任何解释。

最佳答案

这与provide_context=True参数有关。根据气流文档,

if set to true, Airflow will pass a set of keyword arguments that can be used in your function. This set of kwargs correspond exactly to what you can use in your jinja templates. For this to work, you need to define **kwargs in your function header.


ds是这些关键字参数之一,并以“YYYY-MM-DD”格式表示执行日期。对于在文档中标记为(模板化)的参数,可以使用 '{{ ds }}'默认变量来传递执行日期。您可以在此处阅读有关默认变量的更多信息:

https://pythonhosted.org/airflow/code.html?highlight=pythonoperator#default-variables(作废)

https://airflow.incubator.apache.org/concepts.html?highlight=python_callable

PythonOperator没有模板化参数,因此可以做类似
python_callable=print_execution_date('{{ ds }}')

将无法正常工作。要在PythonOperator的callable函数中打印执行日期,您将需要执行以下操作:
def print_execution_date(ds, **kwargs):
print(ds)

要么
def print_execution_date(**kwargs):
print(kwargs.get('ds'))

希望这可以帮助。

关于airflow - Airflow :PythonOperator:为什么要包含 'ds' arg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40531952/

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