dt = '{{ ds }}'不起作用,因为Jinja(气流中使用的模板引擎)无法处理整个Dag定义文件。
对于每个
Operator字段,Jinja将处理的字段都是操作员本身定义的一部分。
在这种情况下,如果您进行如下扩展
params,则可以使字段(实际上称为
parameters,请确保更改此字段)为模板
PostgresOperator:
class MyPostgresOperator(PostgresOperator): template_fields = ('sql','parameters')现在您应该可以执行以下操作:
s3_to_redshift = MyPostgresOperator( task_id='s3_to_redshift', postgres_conn_id='redshift', sql='s3_to_redshift.sql', parameters={'file': '{{ ds }}'}, dag=dag)


