ArrowIPC (.arrow, .arrows, .feather, .ftr)
背景
-
- 已注册的 MIME 类型:application/vnd.apache.arrow.file, application/vnd.apache.arrow.stream
- Arrow IPC 列式数据格式.
- 用于高效序列化大型列式数据集.
- 列式格式中序列化数据的原始单位称为记录批次.
- Arrow IPC 文件格式用于序列化固定数量的记录批次并支持随机访问.
- Arrow IPC 流格式用于发送记录批次的任意长度序列.
- Feather 版本 2 是一种文件格式,表示为磁盘上的 Arrow IPC 文件.
- Feather 版本 1 是一种与 Arrow IPC 文件不同的旧文件格式.
- 由 Apache 软件基金会开发.
- 二进制文件格式.
- 支持多种压缩方法.
导入与导出
- Import["file.arrow"]将 ArrowIPC 目录导入为 Tabular 对象.
- Import["file.arrow",elem] 导入指定的元素.
- Import["file.arrow",{elem,subelem1,…}]导入子元素 subelemi,适用于部分数据导入.
- 可以使用 Import["file","ArrowIPC"] 或 Import["file",{"ArrowIPC",elem,…}] 指定导入格式.
- Export["file.arrow",expr] 将 Tabular 对象导出为 ArrowIPC 文件格式.
- 支持的表达式 expr 包括:
-
{v1,v2,…} 单列数据 {{v11,v12,…},{v21,v22,…},…} 数据行列表 array 数组,例如 SparseArray、QuantityArray 等 dataset Dataset 或 Tabular 对象 - 有关完整的通用信息,请参阅以下参考页面:
-
Import, Export 从文件导入或导出至文件 CloudImport, CloudExport 从云对象导入或导出至云对象 ImportString, ExportString 从字符串导入或导出为字符串 ImportByteArray, ExportByteArray 从字节数组导入或导出为字节数组
导入元素
- Import 的通用参数:
-
"Elements" 此文件中可用的元素和选项列表 "Summary" 文件摘要 "Rules" 所有可用元素的规则列表 - 数据表示元素:
-
"Data" 二维数组 "Dataset" 作为 Dataset 的表格数据 "Tabular" Tabular 对象 - Import 默认使用 "Tabular" 元素.
- "Tabular" 元素的部分数据导入的子元素可以采用 {"Tabular",rows,cols} 形式的行和列规范,其中 rows 和 cols 可以是以下任一种:
-
n 第 n 行或列 -n 从最后开始计数 n;;m 从 n 到 m n;;m;;s 从 n 到 m,步长为 s {n1,n2,…} 特定行或列 ni - 数据描述符元素:
-
"ColumnLabels" 列名 "ColumnTypes" 与每列数据类型的关联 "Schema" TabularSchema 对象 - 元数据元素:
-
"ColumnCount" 文件中存储的列数 "Dimensions" 数据维度 "RowCount" 文件中存储的行数 "MetaInformation" 元数据
选项
- Import 的通用选项:
-
IncludeMetaInformation All 要导入的元数据类型 "Schema" Automatic 用于构建 Tabular 对象的模式 "UseMemoryMappedFile" True 是否使用内存映射读取器 - "Schema" 选项的可能设置包括:
-
schema 完整的 TabularSchema 规范 propval 架构属性和值(参阅 TabularSchema 的参考页面) <|"prop1"val1,…|> 架构属性和值的关联 - Export 的通用选项:
-
"Compression" None 压缩方法 CompressionLevel Automatic 压缩级别 "Streamable" False 如果为真,则使用 Arrow IPC 流格式 - 支持以下 "Compression" 设置:
-
None 无压缩 "LZ4Frame" LZ4 帧压缩 "ZSTD" ZSTD 压缩
范例
打开所有单元 关闭所有单元范围 (3)
导入 (3)
导入元素 (14)
导入选项 (3)
导出选项 (6)
CompressionLevel (2)
"Streamable" (2)
历史
2025年引入 (14.2)