跳到内容

概述

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

要了解有关 Apache Arrow 项目的更多信息,请参阅父项目 Arrow Project 的文档。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 用户,这意味着您需要运行 R 版本 4.0 或更高版本。在 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 Issues 上提交一个包含最小可重现示例的问题。登录您的 GitHub 账户,点击 New issue 并选择要创建的问题类型。添加一个有意义的标题,前缀为 [R],后跟一个空格和问题摘要,然后从下拉列表中选择组件 R。更多信息,请参阅 Arrow 开发者文档中 Contributing to Apache Arrow 页面中的 报告错误和提出功能建议 部分。

行为准则

请注意,所有参与 Apache Arrow 项目的行为均受 Apache Software Foundation 行为准则的约束。