跳转至内容

概述

R arrow 包为 R 用户提供了 Apache Arrow C++ 库的许多功能。arrow 的目标是为 dplyr 提供 Arrow C++ 后端,并通过熟悉的 base R 和 tidyverse 函数或 R6 类访问 Arrow C++ 库。 专用的 R 包网站位于此处

要了解有关 Apache Arrow 项目的更多信息,请参阅父级 Arrow 项目 的文档。Arrow 项目为各种数据分析任务提供功能,以快速存储、处理和移动数据。 请参阅读/写文章以了解如何读取和写入数据文件,数据整理以了解如何在 arrow 对象中使用 dplyr 语法,以及函数文档以获取 dplyr 查询中支持的函数的完整列表。

安装

可以从 CRAN 安装最新版本的 arrow。 在大多数情况下,安装最新版本应该不需要任何额外的系统依赖项,尤其是在您使用 Windows 或 macOS 时。

如果您在从 CRAN 安装时遇到问题,我们提供了两种替代安装选项来获取最新的 arrow 版本。 首先,R-universe 为最常用的操作系统提供预编译的二进制文件。1

install.packages("arrow", repos = c("https://apache.r-universe.dev", "https://cloud.r-project.org"))

其次,如果您使用 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 中能够访问它的许多功能。 它通过 dplyr 后端和熟悉的 R 函数提供对 Arrow C++ 库 API 的低级访问和高级访问。

Arrow 资源

您可能会发现一些额外的资源对 arrow 入门很有用

获取帮助

我们欢迎 arrow 包用户的提问、讨论和贡献。 有关邮件列表和其他与 Arrow 开发人员和用户社区互动场所的信息,请参阅Apache Arrow 社区页面。

如果您遇到错误,请在GitHub issues上提交一个包含最小可重现示例的问题。 登录您的 GitHub 帐户,单击**新建 issue** 并选择您要创建的 issue 类型。 添加一个以 **`[R]`** 开头且后跟一个空格的有意义的标题,问题摘要,然后从下拉列表中选择组件 **R**。 更多信息,请参阅 Arrow 开发人员文档中贡献 Apache Arrow页面的**报告错误和建议功能**部分。

行为准则

请注意,参与 Apache Arrow 项目的所有活动均受 Apache 软件基金会的行为准则约束。