根据文档“ If xcom_push is True
,当bash命令完成时,写入stdout
的最后一行也将被推送到 XCom 。”
但是,我需要返回由终端执行的 python脚本产生的多行字符串。我想随后在 EmailOperator 中使用此字符串。
所以我的问题是:是否可以通过 xcom_push 推到最后一行?理想情况下,它会任意长。非常感谢您的帮助,谢谢!
编辑:我已经通过使用PythonOperator并调用脚本来解决了这个问题,但是我仍然很好奇是否有可能将多行数据从BashOperator推送到XCom
答案 0 :(得分:0)
source code中已明确指出,如果xcom_push = True
,则仅会推送BashOperator的最后行。
:param xcom_push: If xcom_push is True, the last line written to stdout
will also be pushed to an XCom when the bash command completes.
但是,您可以轻松地创建一个继承自BashOperator的自定义运算符,并实现双重xcom_push
。
有关如何使用Airflow插件构建自定义运算符的信息,请参见plugins文档。