.arrow
Data
Apache Arrow IPC(内存列式格式)
Apache Arrow IPC 是一种与语言无关的列式内存数据格式。它支持进程和语言(Python、R、C++、Java)之间的零拷贝数据共享,无需序列化开销,是现代数据处理管道的基础。
MIME 类型
application/vnd.apache.arrow.file
类型
二进制
压缩
无损
优点
- + Zero-copy data sharing between languages and processes
- + Optimized for SIMD and vectorized computation
- + Standard memory layout for modern data tools (DuckDB, Polars, Pandas)
缺点
- − Not designed for persistent storage — use Parquet for that
- − Files are larger than compressed Parquet or CSV
- − More complex than CSV for simple data exchange
何时使用 .ARROW
在进程间数据交换、构建数据处理管道以及任何需要零拷贝数据共享的场景中使用 Arrow。
技术细节
Arrow 文件使用固定大小的二进制布局,每列使用连续内存缓冲区。IPC 格式支持流式(顺序消息)和文件(带尾部的随机访问)两种模式。空值使用有效性位图。
历史
Wes McKinney(Pandas 的创建者)于 2016 年发起 Apache Arrow 项目,旨在解决工具之间数据序列化的低效问题。Arrow 提供了被 DuckDB、Polars 和 Pandas 2.0 采用的通用内存布局。