pyarrow - 如何将数据框附加到磁盘上现有的 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)
- 这不推荐吗?我是否违反了 Apache Arrow 的设计意图?
- 我的另一种方法是将箭头文件作为数据框读取,用我当前的数据附加到它,然后再写回来。但我想知道是否有更好的方法?
解决方案
箭头文件一旦写入就不可更改,您无法通过现有 API 附加数据。如果所有元素都需要在同一个文件中,则读取然后将数据写回是您唯一的选择。
Arrow Stream 格式在技术上可以支持附加数据,但您将失去对 RecordBatch 的随机访问
推荐阅读
- git - 如何再次在 Github 中 fork 一个项目?
- javascript - 为什么插入后没有显示文本?
- c# - 如何将此字符串转换为标签?
- pycharm - PyCharm 中再次出现未解决的参考问题
- dynamics-crm - FetchXML 查询返回当前用户下属拥有的所有记录
- database - Solr 关系数据库
- visual-studio - 使用 msbuild.exe 编译项目列表
- javascript - 无法在脚本中读取 null 的属性“长度”
- sql - Postgresql LAG() 函数显示零而不是空
- pyspark - pyspark数据框的区分大小写的列删除操作?