簡體   English   中英

如何在 BashOperator 執行的 python 腳本文件中使用 Xcom

[英]How to use Xcom within python script file executed by BashOperator

我正在使用 Bash 運算符執行 python 腳本文件,如下所示:

op = BashOperator(task_id='python',
                  bash_command='python3 py_script.py')

在 python 文件中,如果在循環中滿足條件,我想向 xcom 發送一個值,例如:

for i in range(10):
    if i == 2:
        print(i)
        xcom_push('hello')

由於它處於循環中,並且我希望它在達到 2 后繼續,所以我不能使用return 我嘗試過:

from airflow.models import XCom

context['ti'].xcom_push('hello')
kwargs['ti'].xcom_push('hello')

但在這兩種情況下,我都會收到類似NameError: name 'kwargs' is not defined的錯誤

解決方案是什么? 謝謝

如果您在BashOperator中設置xcom_push=True ,則 bash 命令寫入標准輸出的最后一行將被推送到 XCom( 文檔)。

因此,如果在您的py_script.py中的print(i)之后沒有打印其他行,則i的字符串表示將被推送到 XCom 以執行pythonk任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM