跳至内容

概述

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

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

安装

arrow 的最新版本可以从 CRAN 安装。在大多数情况下,安装最新版本应该可以正常工作,无需任何额外的系统依赖项,尤其是在使用 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 中访问其许多功能。它提供了对 Arrow C++ 库 API 的低级访问,以及通过 dplyr 后端和熟悉的 R 函数进行的高级访问。

Arrow 资源

有一些额外的资源可能对您开始使用 arrow 有用

获取帮助

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

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

行为准则

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