如何解决Arrow IPC vs Feather
Arrow IPC 和 Feather 有什么区别?
Version 2 (V2),默认版本,准确表示为 磁盘上的 Arrow IPC 文件格式。 V2 文件支持存储所有 Arrow 数据类型以及使用 LZ4 或 ZSTD 进行压缩。 V2是第一次制造 在 Apache Arrow 0.17.0 中可用。
虽然 vaex 是 Pandas 的替代品,但有两种不同的功能,一种用于 Arrow IPC,一种用于 Feather。 polars 是另一种 Pandas 替代方案,表明 Arrow IPC 和 Feather 是相同的。
解决方法
TL;DR Arrow IPC 文件格式和 Feather V2 之间没有区别。
由于 Feather 的两个版本以及 Arrow IPC 文件格式与 Arrow IPC 流格式的关系,存在一些混淆。
对于 Feather 的两个版本,请参阅 FAQ entry:
“Feather”文件格式怎么样?
Feather v1 格式是一种简化的自定义容器,用于在开发 Arrow IPC 文件格式之前将 Arrow 格式的一个子集写入磁盘。 “Feather 版本 2”现在完全是 Arrow IPC 文件格式,我们保留了“Feather”名称和 API 以实现向后兼容性。
所以IPC == Feather(V2)。有些地方提到 Feather 意思是 Feather(V1),它不同于 IPC 文件格式。然而,这似乎不是这里的问题:Polars 和 Vaex 似乎使用 Feather 来表示 Feather(V2)(尽管 Vaex 有点误导性地说“Feather 完全表示为磁盘上的 Arrow IPC 文件格式,但也支持压缩").
Vaex 公开 export_arrow
和 export_feather
。这与 Arrow 的另一点有关,因为它定义了 IPC 流格式和 IPC 文件格式。它们的区别在于文件格式有一个魔法字符串(用于文件识别)和一个页脚(用于支持随机访问读取)(documentation)。
export_feather
总是写入 IPC 文件格式 (==FeatherV2),而 export_arrow
允许您在 IPC 文件格式和 IPC 流格式之间进行选择。看看 where export_feather
was added 我认为混乱可能源于 PyArrow API 使得如何使用 Feather API 方法启用压缩(这是一种用户友好的便利)而不是使用 IPC 文件编写器(这就是{ {1}} 次使用)。但最终,写入的格式是相同的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。