Format Atlas

对比

Arrow IPC 与 CSV

两者都可交换表格数据,但 Arrow IPC 是带类型的二进制列式格式,CSV 则是使用分隔字段的纯文本。

应该选择哪种格式?

要在兼容的分析工具之间保留类型架构时选 Arrow IPC;要易读并兼容多种电子表格和工具时选 CSV。

适用于 Apache Arrow IPC

在兼容的程序和语言之间交换列式表格数据 · 在支持 Arrow 的工具之间传递分析数据集

  • 在 Arrow 库和分析引擎之间移动带类型的数据
  • 在 IPC 文件版中随机访问记录批次

适用于 CSV

表格数据交换

  • 在应用间传递一个简单表格

基本信息

项目Apache Arrow IPCCSV
扩展名.arrow, .feather, .arrows.csv
MIME 类型application/vnd.apache.arrow.file, application/vnd.apache.arrow.streamtext/csv
常见用途在兼容的程序和语言之间交换列式表格数据 · 在支持 Arrow 的工具之间传递分析数据集表格数据交换
打开方式使用 Apache Arrow 库或支持 Arrow IPC 的分析工具读取。.arrow 通常表示文件版,.arrows 通常表示流版,但应确认接收工具所需的 IPC 模式和压缩编解码器。处理 Feather 文件时,也要确认其与旧版 Feather V1 的兼容性。导入电子表格时请设置字符编码和分隔符。检查前导零、类似日期的值和长数字不会被自动转换。
导出或转换Parquet 可用于分析数据存储和分发;CSV 适用于简单表格交换。转换可能改变或丢失 Arrow 专有类型、嵌套结构、字典编码或压缩设置。请确认所需类型和精度,并保留源数据。将XLSX导出为CSV通常只写出一个选定工作表的值。请另行保留公式、格式、其他工作表和图表。

按用途选择

在 Arrow 库和分析引擎之间移动带类型的数据

在兼容的程序和语言之间交换列式表格数据 · 在支持 Arrow 的工具之间传递分析数据集

Apache Arrow IPC

在 IPC 文件版中随机访问记录批次

在兼容的程序和语言之间交换列式表格数据 · 在支持 Arrow 的工具之间传递分析数据集

Apache Arrow IPC

在应用间传递一个简单表格

表格数据交换

CSV

关键点 1

Arrow 定义带类型的列数组,并通过 IPC 序列化记录批次;CSV 将行和字段保存为文本。

进一步了解差异

关键点 2

Arrow 可明确表示数字、时间戳、空值和嵌套值等类型;CSV 读取器常从文本推断类型,或需要单独的架构。

进一步了解差异

进一步了解差异

兼容工具需要交换列式数据并保留类型、可空性和嵌套字段时使用 Arrow IPC。人需要直接查看文件或用多种应用交换简单表格时使用 CSV。使用 CSV 时应约定编码、分隔符、引号、表头和类型解释;使用 Arrow 时应确认 IPC 文件或流的支持情况。

  • Arrow 使用与语言无关的列式架构,并将 IPC 记录批次序列化为文件或流。CSV 是按行组织的文本;RFC 4180 记录了常见的逗号、引号和换行约定。
  • Arrow 明确表示数据类型和空值,也支持部分嵌套结构。CSV 值是文本,因此类型和空值含义常由读取器推断或在外部定义。
  • CSV 易读且便于传递,但大规模解析和类型推断可能耗时或存在歧义。Arrow 适用于带类型的分析数据交换,但需要兼容库。

常见问题

CSV 能保留列的数据类型吗?

CSV 文本本身不提供丰富且标准化的列架构。读取器通常需要推断类型或依赖单独的架构信息。

了解详情

参考资料与规范