2017-04-08 60 views
1

我喜歡__init __()發生在氣流DAG任務給出恰好2個參數1

from airflow import DAG 
from datetime import date time 
dag_crawl = DAG(
    dag_id='test_dag', 
    start_date= datetime(year=2017, month=3, day=28),) 

和任務DAG像

test_task = PythonOperator(
    task_id = 'test_task', 
    python_callable = AClass().a_method, 
    # to pass self as first argument while calling a_method 
    op_args = [AClass()], 
) 

inspite通過自我而調用該方法的 'a_method' (')'

我得到Broken DAG:__init __()只需要2個參數(給出1)

你能提出一些建議來解決這個問題嗎?

回答

3

首先,你不必通過對象,同時調用一個方法:類a_method:ACLASS()的時候,你指的是可調用python_callable = AClass().a_method要調用的方法是不足夠的自我。您不必通過[AClass()]傳遞op_args。這個錯誤:Broken DAG:__init __()只需要2個參數(給出1)是因爲你的AClass()期望一個你沒有給出的參數(我最有可能猜到)。

你需要像

test_task = PythonOperator(
task_id = 'test_task', 
python_callable = AClass(some_param=some_value).a_method, 
) 
+0

那是愚蠢的我通過自我。這個原因正是你所說的,謝謝。 –

相關問題