首页 > 解决方案 > 使用 Airflow 进行多步 Pandas 处理

问题描述

我有一个使用熊猫的多阶段 ETL 转换阶段。基本上,我从 Mongodb 加载了近 2Gb 的数据,然后在列中应用了几个函数。我的问题是,是否有任何方法可以打破多个 Airflow 任务中的这些转换。

我考虑过的选项是:

  1. 在 Mongodb 中创建一个临时表并在步骤之间加载/存储转换后的数据帧。我发现这很麻烦,并且由于磁盘 I/O 而完全容易产生不寻常的开销

  2. 使用 XCom 在任务之间传递数据。我认为这是一个不错的解决方案,但我担心数据的庞大规模。文档明确说明

任何可以腌制的对象都可以用作 XCom 值,因此用户应确保使用适当大小的对象。

  1. 在步骤之间使用内存存储。也许将数据保存在 Redis 服务器或其他东西中,但我不确定这是否比完全使用 XCom 更好。

那么,你们中的任何人对如何处理这种情况有任何提示吗?谢谢!

标签: pandasairflow

解决方案


推荐阅读