问题描述:
在Airflow中,已经添加了模板字段,但是类似于{{ ds }}
的变量没有起作用。
解决方法:
templated_field = '{{ ... }}'
的形式添加到任务中,确保模板字段的语法正确。template_fields
属性中包含了模板字段的名称。在任务的类定义中,通过设置template_fields
属性,将模板字段的名称添加到该属性中。template_ext
属性中包含了模板字段的文件扩展名。在任务的类定义中,通过设置template_ext
属性,将模板字段的文件扩展名添加到该属性中。以下是一个示例代码,演示了如何在Airflow中正确使用模板字段:
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime
default_args = {
'start_date': datetime(2022, 1, 1)
}
with DAG('example_dag', schedule_interval='@daily', default_args=default_args) as dag:
task1 = BashOperator(
task_id='task1',
bash_command='echo {{ ds }}',
template_fields=('bash_command',),
template_ext=('sh',)
)
在上面的示例中,task1
任务的bash_command
属性使用了模板字段{{ ds }}
,并且在template_fields
属性中指定了该模板字段的名称。此外,还在template_ext
属性中指定了该模板字段的文件扩展名为sh
。
确保按照上述方法正确设置和使用模板字段后,{{ ds }}
这样的变量就可以正常起作用了。
上一篇:Airflow模板化问题
下一篇:Airflow模块未找到错误