首页 > 解决方案 > 如何将数据框附加到磁盘上现有的 Apache Arrow 文件

问题描述

场景:在我的日常 ETL 过程中,我正在考虑将我的数据另外存储为 Apache Arrow 文件,以实现零拷贝序列化。

如果我在磁盘上有一个包含先前数据的现有 Apache Arrow 文件,我如何使用pyarrow将当天处理的数据(作为数据框)附加到磁盘上的现有箭头文件?

我尝试使用“a”模式,但没有奏效

  with pa.OSFile(output, "a") as sink:
        with pa.RecordBatchFileWriter(sink, table_df.schema) as writer:
            writer.write_table(table_df)

标签: pyarrow

解决方案


箭头文件一旦写入就不可更改,您无法通过现有 API 附加数据。如果所有元素都需要在同一个文件中,则读取然后将数据写回是您唯一的选择。

Arrow Stream 格式在技术上可以支持附加数据,但您将失去对 RecordBatch 的随机访问


推荐阅读