将运算符的结果保存在Apache Airflow中

时间:2018-12-28 14:50:04

标签: python-3.x airflow

几个运算符允许提取数据,但我从未设法使用结果。

例如: https://github.com/apache/incubator-airflow/blob/master/airflow/contrib/operators/bigquery_get_data.py

此运算符可以称为:

get_data = BigQueryGetDataOperator(
      task_id='get_data_from_bq',
      dataset_id='test_dataset',
      table_id='Transaction_partitions',
      max_results='100',
      selected_fields='DATE',
      bigquery_conn_id='airflow-service-account'
      )

但是,get_data是DAG类型,但第116行显示“ return table_data”。 需要明确的是,操作员可以工作并检索数据,我只是不了解如何使用数据检索/数据位于何处。

如何使用上面的“ get_data”获取数据?

2 个答案:

答案 0 :(得分:2)

下一个任务中使用var name = "John"; var temp_data = $"Hi {name}"; var result_data = temp_data; Console.log(result_data); 的方式可以是get_data,然后可以使用它来处理数据。

PythonOperator

PS:我是get_data = BigQueryGetDataOperator( task_id='get_data_from_bq', dataset_id='test_dataset', table_id='Transaction_partitions', max_results='100', selected_fields='DATE', bigquery_conn_id='airflow-service-account' ) def process_data_from_bq(**kwargs): ti = kwargs['ti'] bq_data = ti.xcom_pull(task_ids='get_data_from_bq') # Now bq_data here would have your data in Python list print(data) process_data = PythonOperator( task_id='process_data_from_bq', python_callable=process_bq_data, provide_context=True ) get_data >> process_data 和Airflow committer / PMC的作者

答案 1 :(得分:1)

返回值保存在Xcom中。如this示例中所示,您可以从其他运算符访问它。

data = ti.xcom_pull(task_ids='get_data_from_bq')