在Airflow中,我使用for循环创建具有不同运算符的分支,我的代码如下所示:
echo { ti.xcom_pull(task_ids='operator1_messages', key='file_name') }
echo { ti.xcom_pull(task_ids='operator1_conversations', key='file_name') }
但是在UI中,命令的呈现方式如下:
bash_command = "echo {{ ti.xcom_pull(task_ids='operator1_messages', key='file_name') }}"
我应该如何编写bash_command让Airflow正确解释模板?
如果我直接写
char
它可以工作,但我想从for循环创建这个命令。
谢谢!
答案 0 :(得分:1)
这样做是因为bash命令的.format(table)
部分正在剥离外部{
和}
。您可以通过以下方式解决此问题:
bash_command = "echo {{ ti.xcom_pull(task_ids='operator1_" + table + "', key='file_name') }}"
这是否是最好的方法可能是另一个问题。