概述
R arrow 包为 R 用户提供了对 Apache Arrow C++ 库 的许多功能的访问权限。arrow 的目标是为 dplyr 提供 Arrow C++ 后端,并通过熟悉的 R 基础和 tidyverse 函数或 R6 类访问 Arrow C++ 库。
要了解有关 Apache Arrow 项目的更多信息,请参阅 Arrow 项目 的父文档。Arrow 项目提供了用于各种数据分析任务的功能,以快速存储、处理和移动数据。请参阅 读取/写入文章 了解如何读取和写入数据文件,数据整理 了解如何在 arrow 对象中使用 dplyr 语法,以及 函数文档 以获取 dplyr 查询中支持的所有函数的完整列表。
安装
arrow 的最新版本可以从 CRAN 安装。在大多数情况下,安装最新版本应该可以正常工作,无需任何额外的系统依赖项,尤其是在使用 Windows 或 macOS 时。
install.packages("arrow")
或者,如果您使用 conda,您可以从 conda-forge 安装 arrow
conda install -c conda-forge --strict-channel-priority r-arrow
需要注意一些特殊情况
在 macOS 上,您与 Arrow 一起使用的 R 应该与您使用的机器的架构匹配。如果您使用的是 ARM(又名 M1、M2 等)处理器,请使用为 arm64 编译的 R。如果您使用的是基于 Intel 的 Mac,请使用为 x86 编译的 R。在基于 ARM 的 Mac 上使用为基于 Intel 的 Mac 编译的 R 和 Arrow 将导致段错误和崩溃。
在 Linux 上,安装过程有时可能更复杂,因为 CRAN 不提供 Linux 的二进制文件。有关更多信息,请参阅 安装指南。
如果您从源代码编译 arrow,请注意,从 10.0.0 版本开始,arrow 需要 C++17 才能构建。这对 Windows 和 CentOS 7 有影响。对于 Windows 用户,这意味着您需要运行 4.0 或更高版本的 R。在 CentOS 7 上,这意味着您需要安装比默认系统编译器 gcc 更新的编译器。请参阅 安装详细信息文章 以获取指导。
arrow 的开发版本每天晚上发布。有关如何安装夜间构建的信息,请参阅 安装夜间构建 文章。
arrow 包能做什么?
Arrow C++ 库由不同的部分组成,每个部分都服务于特定的目的。arrow 包为各种数据分析任务提供了对 C++ 功能的绑定。
它允许用户以多种格式读取和写入数据
- 读取和写入 Parquet 文件,一种高效且广泛使用的列式格式
- 读取和写入 Arrow(以前称为 Feather)文件,一种针对速度和互操作性优化的格式
- 以极高的速度和效率读取和写入 CSV 文件
- 读取和写入多文件和大于内存的数据集
- 读取 JSON 文件
它提供了对远程文件系统和服务器的访问
- 读取和写入 Amazon S3 和 Google Cloud Storage 存储桶中的文件
- 连接到 Arrow Flight 服务器以通过网络传输大型数据集
其他功能包括
- 使用 dplyr 动词操作和分析 Arrow 数据
- R 和 Python 之间的零拷贝数据共享
- 对列类型进行精细控制,以与数据库和数据仓库无缝协作
- 用于构建连接到使用 Arrow 的其他应用程序和服务的工具包
什么是 Apache Arrow?
Apache Arrow 是一个跨语言开发平台,用于内存中和大于内存的数据。它指定了一种标准化的语言无关列式内存格式,用于扁平化和分层数据,并针对现代硬件上的高效分析操作进行了组织。它还提供计算库和零拷贝流、消息传递和进程间通信。
此包公开了对 Arrow C++ 库的接口,从而能够在 R 中访问其许多功能。它提供了对 Arrow C++ 库 API 的低级访问,以及通过 dplyr 后端和熟悉的 R 函数进行的高级访问。
Arrow 资源
您可能会发现一些额外的资源对开始使用 arrow 有用
- 官方 Arrow R 包文档
- Arrow for R 速查表
- Apache Arrow R 食谱
- R for Data Science 关于 Arrow 的章节
- Awesome Arrow R
获取帮助
我们欢迎 arrow 包用户的提问、讨论和贡献。有关与 Arrow 开发人员和用户社区互动的邮件列表和其他场所的信息,请参阅 Apache Arrow 社区 页面。
如果您遇到错误,请在 GitHub 问题 上使用最小的可重现示例提交问题。登录您的 GitHub 帐户,单击 **新建问题** 并选择要创建的问题类型。添加一个有意义的标题,以 **[R]
** 开头,后面跟着一个空格、问题摘要,并从下拉列表中选择组件 **R**。有关更多信息,请参阅 为 Apache Arrow 做贡献 页面中 Arrow 开发人员文档的 **报告错误和提出功能** 部分。
行为准则
请注意,所有参与 Apache Arrow 项目的行为都受 Apache 软件基金会的 行为准则 约束。