2017-07-20 5 views
0

私は以下のようにXCOM値をプッシュするカスタム演算子を持っている:Apache Airflow DAGに値をxcom_pull()する方法は?

... 
task_instance = context['task_instance'] 
task_instance.xcom_push("list_of_files",file_list) 
... 

それは正常に動作します。私は独自の演算子を使用してタスクを作成するダグ定義ファイル(my_dag.py)を持っています。このxcom値を使用してループ内で行いたいXCOM値をプッシュします。どのようにそれを引っ張る?

答えて

0

あなたのdagのXCOM変数にアクセスすることはできません。演算子コンストラクタに引数provide_context=Trueを指定することで、演算子でのみ使用できます。

DAG構造自体で演算子のデータを使用する場合は、演算子が演算子の外で実行している実際のタスクを実行する必要があります。

def get_file_list(): 
    hook = SomeHook() 
    hook.run('something to get file list') 

dag = DAG('tutorial', default_args=default_args) 

for file in get_file_list(): 
    task = SomeOperator(params={'file': file}) # Do something with the file passed as a parameter 
関連する問題