在 Airflow 中,可以通过 XComs 机制来获取任务输出的值。XComs 是 Airflow 中通信机制的一种,可以让不同任务之间共享数据。
要获取特定索引的值,可以先从 XCom 中获取整个输出数据,然后再根据索引取得对应的值。
下面是一个示例代码:
from airflow.operators.python_operator import PythonOperator
from airflow.models import TaskInstance
from airflow.utils import timezone
def print_specific_index(ti, index):
data = ti.xcom_pull(key='my_output_key', task_ids='my_task_id')
value = data[index]
print(f'The value at index {index} is {value}')
my_task = PythonOperator(
task_id='my_task_id',
python_callable=my_function,
provide_context=True,
op_kwargs={...},
dag=my_dag,
)
another_task = PythonOperator(
task_id='another_task',
python_callable=print_specific_index,
op_kwargs={'index': 2},
dag=my_dag,
)
my_task >> another_task
在这个例子中,my_task
任务生成了一个输出,并将其存储在 XComs 中。another_task
任务通过调用print_specific_index
函数来获取并打印输出中索引为2的值。