Apache 箭头 Java 脚本
Apache 箭头 是一个通用的专栏格式和多语言工具箱,用于快速数据交换和内相分析. 它包含一套技术,使数据系统能够高效地存储,处理并移动数据.
安装 apache-arrow 国家防范机制
npm install apache-arrow 或者说 yarn add apache-arrow
(阅读我们如何 软件包全页 (见下文)
记忆分析电源
Apache Arrow是用于编码向量和平面和嵌入式数据的桌状容器的一列内存布局规格. Arrow spec对内存中的列数据进行校正,以将缓存缺失降至最小,并充分利用现代处理器上最新的SIMD(单输入多数据)和GPU操作.
Apache Arrow是大型内相列数据(闪光, (中文(简体) ), 熊猫, (中文(简体) ), 钻探, (中文(简体) ), 图形学(中文(简体) ). 通过将通用的二进制交换格式标准化,大数据系统可以降低与跨系统通信相关的成本和摩擦.
开始
看看我们 API 文档 来学习如何使用 Apache Arrow JavaScript 。 您也可以通过查看以下资源来学习:
- /测试/单位 - 表和矢量单位测试
烹饪本
从磁盘上的箭头文件获取表格( 以 IPC 格式)
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
*/
当箭头文件被分拆为缓冲时创建一个表格
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 数组创建表格
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
import { tableFromIPC } from "apache-arrow";
const table = await tableFromIPC(fetch("/simple.arrow"));
console.table([...table]);
矢量像JS阵列
您可以用 JavaScript 键入数组创建向量 makeVector 并来自 JavaScript 数组 vectorFromArray。 。 。 . makeVector 速度快得多,不需要复制.
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。 。 。 .
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
即使你不打算为 Apache 箭头本身或箭头做出贡献 融入其他项目,我们很乐意你参与:
- 加入邮件列表: 发送电子邮件到 dev-订阅者@arrow.apache.org。分享你的想法,并使用案例 项目
- 跟踪我们的活动 GitHub 问题
- 学习格式
- 为参考执行之一提供代码
我们更希望收到以GitHub拉出请求的形式提供的捐款. 请发送拉 请求反对 github.com/apache/arrow-js (英语) 仓库.
如果你在寻找一些想法 什么贡献,检查一下 GitHub 图像 问题 用于Apache箭头项目。 对这个问题的评论和/或联系 页面存档备份,存于互联网档案馆 [email protected] 你的问题和想法.
如果你想要报告一个错误 或邮寄邮件列表 页面存档备份,存于互联网档案馆 [email protected]
包装
apache-arrow 以TypeScript写作,但项目被编译成多个JS版本和通用模块格式.
基础 apache-arrow 软件包包括所有编译目标,以方便,但如果你对自己的 node_modules 脚印,我们得到了你.
这些目标也在《公约》下公布 @apache-arrow 名称空间 :
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 箭头也在工作 维持的节点版本。 。 。 .
人员
Apache 箭头的完整列表 犯罪者。 。 。 .
- 布莱恩·胡莱特, 罪犯
- 保罗·泰勒, 罪犯
- 多米尼克·莫里兹, 罪犯
由 Apache 箭头 Java 脚本提供动力
Apache 箭头的完整列表 项目和组织。 。 。 .
开源项目
- Apache 箭头 - 为记忆分析提供动力的父项目,包括附属的开源项目
- 视角 - Perspective是一个交互式分析和数据可视化组件,非常适合大型和(或)流数据组。 视角杠杆箭 C++ 编译为 Web Assembly .
- 猎鹰 是一个可视化工具,用于在成百上千万或数十亿记录的多组可视化中进行连通互动.
- 维嘉 是一个网络交互可视化工具的生态系统。 Vega团队实施了 箭头装入器。 。 。 .
- 阿尔克罗 是用于数组后置数据表的查询处理和转换的库.
- 奥姆尼西 是 GPU 数据库。 它的JavaScript连接器返回了Arrow数据帧.