# @apache-arrow/ts 中文文档

规范地址：https://npmcn.com/package/%40apache-arrow/ts/

版本：21\.2\.0
npm 元数据更新时间：2026-07-21T01:33:45.713Z
中文译文更新时间：2026-11-06T08:48:25.444Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40apache-arrow/ts
原文对照：https://npmcn.com/package/%40apache-arrow/ts/?lang=original
项目主页：https://arrow.apache.org/js/
源码仓库：https://github.com/apache/arrow-js

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.2 MB，165 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2017-12-02T07:15:44.192Z
- 最新版本发布：2026-07-21T01:33:45.528Z
- 近 30 天下载量：84598（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：45（近 12 个月 1 个）

## 中文简介

Apache 箭头列格式

## 安装

```sh
npm install @apache-arrow/ts
```

也可以使用：`pnpm add @apache-arrow/ts`、`yarn add @apache-arrow/ts`、`bun add @apache-arrow/ts`

## README

# Apache 箭头 Java 脚本

[![npm version](https://img.shields.io/npm/v/apache-arrow.svg)](https://www.npmjs.com/package/apache-arrow)

[Apache 箭头](https://arrow.apache.org/) 是一个通用的专栏格式和多语言工具箱,用于快速数据交换和内相分析. 它包含一套技术,使数据系统能够高效地存储,处理并移动数据.

## 安装 `apache-arrow` 国家防范机制

`npm install apache-arrow` 或者说 `yarn add apache-arrow`

(阅读我们如何 [软件包全页](https://npmcn.com/package/%40apache-arrow/ts/#readme-packaging) (见下文)

## 记忆分析电源

Apache Arrow是用于编码向量和平面和嵌入式数据的桌状容器的一列内存布局规格. Arrow spec对内存中的列数据进行校正,以将缓存缺失降至最小,并充分利用现代处理器上最新的SIMD(单输入多数据)和GPU操作.

Apache Arrow是大型内相列数据([闪光](https://spark.apache.org/), (中文(简体) ), [熊猫](https://wesmckinney.com/blog/pandas-and-apache-arrow/), (中文(简体) ), [钻探](https://drill.apache.org/), (中文(简体) ), [图形学](https://www.graphistry.com/)(中文(简体) ). 通过将通用的二进制交换格式标准化,大数据系统可以降低与跨系统通信相关的成本和摩擦.

## 开始

看看我们 [API 文档](https://arrow.apache.org/js/) 来学习如何使用 Apache Arrow JavaScript 。 您也可以通过查看以下资源来学习:

-   [/测试/单位](https://github.com/apache/arrow-js/tree/main/test/unit) - 表和矢量单位测试

## 烹饪本

### 从磁盘上的箭头文件获取表格( 以 IPC 格式)

```js
import { readFileSync } from 'fs';
import { tableFromIPC } from 'apache-arrow';

const arrow = readFileSync('simple.arrow');
const table = tableFromIPC(arrow);

console.table(table.toArray());

/*
 foo,  bar,  baz
   1,    1,   aa
null, null, null
   3, null, null
   4,    4,  bbb
   5,    5, cccc
*/
```

### 当箭头文件被分拆为缓冲时创建一个表格

```js
import { readFileSync } from 'fs';
import { tableFromIPC } from 'apache-arrow';

const table = tableFromIPC([
    'latlong/schema.arrow',
    'latlong/records.arrow'
].map((file) => readFileSync(file)));

console.table([...table]);

/*
        origin_lat,         origin_lon
35.393089294433594,  -97.6007308959961
35.393089294433594,  -97.6007308959961
35.393089294433594,  -97.6007308959961
29.533695220947266, -98.46977996826172
29.533695220947266, -98.46977996826172
*/
```

### 从 JavaScript 数组创建表格

```js
import { tableFromArrays } from 'apache-arrow';

const LENGTH = 2000;

const rainAmounts = Float32Array.from(
    { length: LENGTH },
    () => Number((Math.random() * 20).toFixed(1)));

const rainDates = Array.from(
    { length: LENGTH },
    (_, i) => new Date(Date.now() - 1000 * 60 * 60 * 24 * i));

const rainfall = tableFromArrays({
    precipitation: rainAmounts,
    date: rainDates
});

console.table([...rainfall]);
```

### 装入数据 `fetch`

```js
import { tableFromIPC } from "apache-arrow";

const table = await tableFromIPC(fetch("/simple.arrow"));

console.table([...table]);
```

### 矢量像JS阵列

您可以用 JavaScript 键入数组创建向量 `makeVector` 并来自 JavaScript 数组 `vectorFromArray`。 。 。 . `makeVector` 速度快得多,不需要复制.

```js
import { makeVector } from "apache-arrow";

const LENGTH = 2000;

const rainAmounts = Float32Array.from(
    { length: LENGTH },
    () => Number((Math.random() * 20).toFixed(1)));

const vector = makeVector(rainAmounts);

const typed = vector.toArray()

assert(typed instanceof Float32Array);

for (let i = -1, n = vector.length; ++i < n;) {
    assert(vector.get(i) === typed[i]);
}
```

### 字符串向量

字符串可以编码为UTF-8或字典编码为UTF-8. 字典编码为重复值,效率更高. 您可以方便地创建编码字符串的字典 `vectorFromArray` 或高效使用 `makeVector`。 。 。 .

```js
import { makeVector, vectorFromArray, Dictionary, Uint8, Utf8 } from "apache-arrow";

const utf8Vector = vectorFromArray(['foo', 'bar', 'baz'], new Utf8);

const dictionaryVector1 = vectorFromArray(
    ['foo', 'bar', 'baz', 'foo', 'bar']
);

const dictionaryVector2 = makeVector({
    data: [0, 1, 2, 0, 1],  // indexes into the dictionary
    dictionary: utf8Vector,
    type: new Dictionary(new Utf8, new Uint8)
});
```

## 参与

见 [发达国家d](https://npmcn.com/package/%40apache-arrow/ts/DEVELOP.md)

即使你不打算为 Apache 箭头本身或箭头做出贡献 融入其他项目,我们很乐意你参与:

-   加入邮件列表: 发送电子邮件到 [dev-订阅者@arrow.apache.org](mailto:dev-subscribe@arrow.apache.org)。分享你的想法,并使用案例 项目
-   跟踪我们的活动 [GitHub 问题](https://github.com/apache/arrow-js/issues)
-   [学习格式](https://github.com/apache/arrow/tree/main/format)
-   为参考执行之一提供代码

我们更希望收到以GitHub拉出请求的形式提供的捐款. 请发送拉 请求反对 [github.com/apache/arrow-js (英语)](https://github.com/apache/arrow-js) 仓库.

如果你在寻找一些想法 什么贡献,检查一下 [GitHub 图像 问题](https://github.com/apache/arrow-js/issues) 用于Apache箭头项目。 对这个问题的评论和/或联系 [页面存档备份,存于互联网档案馆 dev@arrow.apache.org](https://mail-archives.apache.org/mod_mbox/arrow-dev/) 你的问题和想法.

如果你想要报告一个错误 或邮寄邮件列表 [页面存档备份,存于互联网档案馆 dev@arrow.apache.org](https://mail-archives.apache.org/mod_mbox/arrow-dev/)

## 包装

`apache-arrow` 以TypeScript写作,但项目被编译成多个JS版本和通用模块格式.

基础 `apache-arrow` 软件包包括所有编译目标,以方便,但如果你对自己的 `node_modules` 脚印,我们得到了你.

这些目标也在《公约》下公布 `@apache-arrow` 名称空间 :

```sh
npm install apache-arrow # <-- combined es2015/CommonJS/ESModules/UMD + esnext/UMD
npm install @apache-arrow/ts # standalone TypeScript package
npm install @apache-arrow/es5-cjs # standalone es5/CommonJS package
npm install @apache-arrow/es5-esm # standalone es5/ESModules package
npm install @apache-arrow/es5-umd # standalone es5/UMD package
npm install @apache-arrow/es2015-cjs # standalone es2015/CommonJS package
npm install @apache-arrow/es2015-esm # standalone es2015/ESModules package
npm install @apache-arrow/es2015-umd # standalone es2015/UMD package
npm install @apache-arrow/esnext-cjs # standalone esNext/CommonJS package
npm install @apache-arrow/esnext-esm # standalone esNext/ESModules package
npm install @apache-arrow/esnext-umd # standalone esNext/UMD package
```

### 为什么我们这样包装

联合来文社区是一个多样化的群体,有各种各样的目标环境和工具链清单。 出版多套包可容纳所有条纹的项目.

如果你认为我们错过了一个编译目标 而这是一个阻碍收养的, 请打开一个问题.

### 支持的浏览器和平台

我们编译的捆绑支持现代浏览器在过去五年中发行. 包括支持的版本 火狐、克罗姆、边缘和萨法里 我们不积极支持Internet Explorer. Apache 箭头也在工作 [维持的节点版本](https://nodejs.org/en/about/releases/)。 。 。 .

## 人员

Apache 箭头的完整列表 [犯罪者](https://arrow.apache.org/committers/)。 。 。 .

-   布莱恩·胡莱特, _罪犯_
-   保罗·泰勒, _罪犯_
-   多米尼克·莫里兹, _罪犯_

## 由 Apache 箭头 Java 脚本提供动力

Apache 箭头的完整列表 [项目和组织](https://arrow.apache.org/powered_by/)。 。 。 .

### 开源项目

-   [Apache 箭头](https://arrow.apache.org/) - 为记忆分析提供动力的父项目,包括附属的开源项目
-   [视角](https://github.com/finos/perspective) - Perspective是一个交互式分析和数据可视化组件,非常适合大型和(或)流数据组。 视角杠杆箭 C++ 编译为 Web Assembly .
-   [猎鹰](https://github.com/uwdata/falcon) 是一个可视化工具,用于在成百上千万或数十亿记录的多组可视化中进行连通互动.
-   [维嘉](https://github.com/vega) 是一个网络交互可视化工具的生态系统。 Vega团队实施了 [箭头装入器](https://github.com/vega/vega-loader-arrow)。 。 。 .
-   [阿尔克罗](https://github.com/uwdata/arquero) 是用于数组后置数据表的查询处理和转换的库.
-   [奥姆尼西](https://github.com/omnisci/mapd-connector) 是 GPU 数据库。 它的JavaScript连接器返回了Arrow数据帧.

## 许可证

[Apache 2.0 (英语)](https://npmcn.com/package/%40apache-arrow/ts/LICENSE.txt)

## 常见问题

### @apache-arrow/ts 是什么？

Apache 箭头列格式

### 如何安装 @apache-arrow/ts？

在项目目录运行 npm install @apache-arrow/ts，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 arrow2csv，可以用 npx arrow2csv 直接运行。

### @apache-arrow/ts 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @apache-arrow/ts 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @apache-arrow/ts 可以商用吗？

@apache-arrow/ts 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @apache-arrow/ts 的下载量有多少？

根据 npm 官方下载统计，@apache-arrow/ts 在 2026/10/06 – 2026/11/04 这 30 天内被下载 84,598 次，日均约 2,820 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @apache-arrow/ts 还在维护吗？

最新版本 21\.2\.0 发布于 2026/07/21（3 个月前）；至今共发布 45 个版本，其中过去 12 个月发布了 1 个；首次发布于 2017/12/02。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

