gpt4 book ai didi

airflow - 在 BigQueryOperator 中将参数添加为 template_fields

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

我正在尝试在 Bigquery 运算符中对 params 字段进行模板化,如下所示。

t3 = MyBigQueryOperator(
task_id='autoplay_calc',
bql='autoplay_calc.sql',
params={
"env" : deployment
,"region" : region
,"partition_start_date" : '{{ macros.ds_add(ds, -1) }}'
},
bigquery_conn_id='gcp_conn',
use_legacy_sql=False,
write_disposition='WRITE_APPEND',
allow_large_results=True,
provide_context=True,
destination_dataset_table=reporting_project + '.pa_reporting_public_batch.autoplay_calc',
dag=dag
)

我意识到 params 不是模板化字段,因此我扩展了 Bigqueryoperator 如下,使其成为模板化字段。
class MyBigQueryOperator(BigQueryOperator):
template_fields = ('params', 'bql', 'destination_dataset_table')

但是,当我运行代码时,它似乎没有转换 params 字段,因为我收到了以下错误消息
Could not cast literal "{{ macros.ds_add(ds, -1) }}

最佳答案

简答:params不支持模板,因为它是一个字典,它需要将 jinja2 应用于键值对。您不能仅通过扩展 template_fields 来添加支持。属性。

关于airflow - 在 BigQueryOperator 中将参数添加为 template_fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55676945/

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