小智 7
尽管它用于许多 ETL 任务,但 Airflow 不是此类操作的正确选择,它适用于工作流而不是数据流。但是有很多方法可以做到这一点,而无需在任务之间传递整个数据框。
您可以使用 x.push 和 x.pull 传递有关数据的信息:
一个。将第一个任务的结果保存在某处(json、csv 等)
湾。将有关已保存文件的信息传递给 x.push。例如文件名、路径。
C。使用 x.pull 从其他任务中读取此文件名并执行所需的操作。
或者:
以上所有内容都使用了一些数据库表:
一个。在 task_1 中,您可以从某个数据框中的 table_1 下载数据,对其进行处理并保存在另一个 table_2 (df.to_sql()) 中。
湾。使用 x.push 传递表的名称。
C。从另一个任务中使用 x.pull 获取 table_2 并使用 df.read_sql() 读取它。
您可以从气流示例中获得有关如何使用 x 的信息。示例:https ://github./apache/airflow/blob/main/airflow/example_dags/tutorial_etl_dag.py
恕我直言,还有很多其他更好的方法,我刚刚写了我尝试过的。
更多推荐
熊猫,气流,如何将,数据
发布评论