如何将数据框附加到磁盘上现有的 Apache Arrow 文件

How to append a dataframe to an existing Apache Arrow file on disk

场景:在我的日常 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)

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

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