Vad*_*nko 6 python apache directed-acyclic-graphs airflow
我有一个自定义运算符,它推送 XCOM 值,如下所示:
...
task_instance = context['task_instance']
task_instance.xcom_push("list_of_files",file_list)
...
Run Code Online (Sandbox Code Playgroud)
它工作正常。我有一个 dag 定义文件 (my_dag.py),我在其中使用自己的运算符创建了一个任务,它推送 XCOM 值,然后我想通过使用此 xcom 值在循环中执行 for。怎么拉?
您无法访问 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
Run Code Online (Sandbox Code Playgroud)