【发布时间】:2018-10-17 19:59:43
【问题描述】:
在运算符之外,我需要调用 SubdagOperator 并使用 xcom 将运算符的返回值传递给它。我见过很多解决方案(Airflow - How to pass xcom variable into Python function、How to retrieve a value from Airflow XCom pushed via SSHExecuteOperator 等)。
他们基本上都说 'variable_name': "{{ ti.xcom_pull(task_ids='some_task_id') }}"
但我的 Jinja 模板一直呈现为字符串,而不是返回实际变量。任何想法为什么?
这是我当前在主要 dag 中的代码:
PARENT_DAG_NAME = 'my_main_dag'
CHILD_DAG_NAME = 'run_featurization_dag'
run_featurization_task = SubDagOperator(
task_id=CHILD_DAG_NAME,
subdag=run_featurization_sub_dag(PARENT_DAG_NAME, CHILD_DAG_NAME, default_args, cur_date, "'{{ ti.xcom_pull(task_ids='get_num_accounts', dag_id='" + PARENT_DAG_NAME + "') }}'" ),
default_args=default_args,
dag=main_dag
)
【问题讨论】: