安装 PyArrow#

系统兼容性#

PyArrow 定期在 Windows、macOS 和各种 Linux 发行版上构建和测试。我们强烈建议使用 64 位系统。

Python 兼容性#

PyArrow 目前兼容 Python 3.10、3.11、3.12 和 3.13。

使用 Conda#

使用 Condaconda-forge 安装最新版本的 PyArrow

conda install -c conda-forge pyarrow

注意

虽然 pyarrow conda-forge 包是大多数用户的正确选择,但该包存在最小和最大变体,其中任何一个都可能更适合您的用例。请参阅 conda-forge 包之间的差异

使用 Pip#

PyPI 安装最新版本(Windows、Linux 和 macOS)

pip install pyarrow

如果您在 Windows 上遇到 pip wheel 的任何导入问题,您可能需要安装 适用于 Visual Studio 的最新 Visual C++ Redistributable

警告

在 Linux 上,您需要 pip >= 19.0 才能检测预构建的二进制包。

安装每夜构建包或从源代码安装#

请参阅 Python 开发

依赖项#

可选依赖项

  • NumPy 1.21.2 或更高版本。

  • pandas 1.3.4 或更高版本。

  • cffi.

PyArrow 兼容的其他包是 fsspec 以及用于时区的 pytzdateutiltzdata 包。

Windows 上的 tzdata#

虽然 Arrow 在 Linux 和 macOS 上使用操作系统提供的时区数据库,但它在 Windows 上需要用户提供的数据库。要下载并提取 IANA 时区数据库的文本版本,请按照 C++ 运行时依赖项 中的说明操作,或使用执行相同操作的 pyarrow 实用程序函数 pyarrow.util.download_tzdata_on_windows()

默认情况下,时区数据库将在 %USERPROFILE%\Downloads\tzdata 处检测到。如果数据库已下载到其他位置,您需要从 Python 设置数据库的自定义路径

>>> import pyarrow as pa
>>> pa.set_timezone_db_path("custom_path")

如果您使用 pip 安装 pyarrow,可能会遇到将日期时间数据写入 ORC 文件的问题。解决此问题的一种可能方法

  1. 使用 pip install tzdata 安装 tzdata

  2. 设置环境变量 TZDIR = path\to\.venv\Lib\site-packages\tzdata\

您可以使用以下 python 命令查找 tzdata 的安装位置

>>> import tzdata
>>> print(tzdata.__file__)
path\to\.venv\Lib\site-packages\tzdata\__init__.py

conda-forge 包之间的差异#

conda-forge 上,PyArrow 以三个独立包的形式发布,每个包提供不同级别的功能。这与 PyPi 形成对比,后者只提供一个 PyArrow 包。

此拆分的目的是为了最大程度地减小大多数用户 (pyarrow) 的安装包大小,为特殊用例提供更小的最小包 (pyarrow-core),同时仍为需要它的用户提供完整的包 (pyarrow-all)。历史上 conda-forge 上的 pyarrow 现在是 pyarrow-all,尽管大多数用户可以继续使用 pyarrow

pyarrow-core 包包含以下功能

pyarrow 包添加了以下内容

  • Acero(即 pyarrow.acero

  • 表格数据集(即 pyarrow.dataset

  • Parquet(即 pyarrow.parquet

  • Substrait(即 pyarrow.substrait

最后,pyarrow-all 添加了

  • Arrow Flight RPC 和 Flight SQL(即 pyarrow.flight

  • Gandiva(即 pyarrow.gandiva

下表列出了每个包提供的功能,可能有助于决定使用哪个包,或在 创建自定义选择 时提供帮助。

组件

pyarrow-core

pyarrow

pyarrow-all

核心

pyarrow-core

Parquet

libparquet

数据集

libarrow-dataset

Acero

libarrow-acero

Substrait

libarrow-substrait

Flight

libarrow-flight

Flight SQL

libarrow-flight-sql

Gandiva

libarrow-gandiva

创建自定义选择#

如果您知道需要哪些组件并希望控制安装的内容,可以创建自定义包选择,仅包含您需要的额外功能。例如,要安装 pyarrow-core 并添加对读写 Parquet 的支持,请在 pyarrow-core 旁边安装 libparquet

conda install -c conda-forge pyarrow-core libparquet

或者,如果您希望使用 pyarrow 但需要 Flight RPC 支持

conda install -c conda-forge pyarrow libarrow-flight