簡體   English   中英

氣流運行使用 PythonOperator 通過 gcsfuse 連接的 python 腳本

[英]Airflow run python script connected via gcsfuse using PythonOperator

我想運行一個存儲在這個 gcp 目錄中的 Python 腳本:

 /home/airflow/gcsfuse/dags/external/projectXYZ/test.py

我之前使用 Bash Operator 來執行理論上可行的腳本,但是在某些 python 庫中的某些函數出現了一些錯誤。 因此,我想測試 PythonOperator 是否有效。 對於 BashOperator,我使用了以下代碼片段:

run_python = BashOperator(
        task_id='run_python',
        bash_command='python /home/airflow/gcsfuse/dags/external/projectXYZ/test.py'
    )

對於 PythonOperator,我看到了一些導入 python 腳本函數的帖子。 但是我不知道如何讓 Airflow 識別導入。 我必須在 gcp 和 Airflow 上的內容之間進行交互的唯一選擇是通過 gcsfuse/dags/external 文件夾。 如何從該路徑執行文件,而不是調用 PythonOperator 中的函數?

因此,經過一些研究和測試,我得出的結論是,無法使用 PytonOperator 執行位於 gcp 存儲桶上的 python 文件。 如果通過 gcsfuse 連接到 Airflow 的 gcp 存儲桶中有一個 python 文件,那么您需要使用 BashOperator。 如果你想使用 PythonOperator,你要么必須在 dag 中編寫 python 代碼並使用 PythonOperator 調用函數,要么從已經存儲在氣流存儲本身的 python 文件中導入函數,然后使用Python操作員。

如果我錯了,請隨時糾正我

暫無
暫無

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

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