安装 PyArrow#
系统兼容性#
PyArrow 定期在 Windows、macOS 和各种 Linux 发行版上构建和测试。我们强烈建议使用 64 位系统。
Python 兼容性#
PyArrow 目前与 Python 3.9、3.10、3.11、3.12 和 3.13 兼容。
使用 Conda#
使用 Conda 从 conda-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 C++ Redistributable for Visual Studio 2015。
警告
在 Linux 上,您需要 pip >= 19.0 来检测预构建的二进制包。
安装夜间构建包或从源代码安装#
请参阅 Python 开发。
依赖项#
可选依赖项
NumPy 1.16.6 或更高版本。
pandas 1.0 或更高版本,
cffi.
PyArrow 兼容的其他软件包包括 fsspec 以及用于时区的 pytz、dateutil 或 tzdata 软件包。
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")
conda-forge 软件包之间的差异#
在 conda-forge 上,PyArrow 以三个独立的软件包的形式发布,每个软件包提供不同级别的功能。这与 PyPi 形成对比,在 PyPi 上只提供单个 PyArrow 软件包。
这种拆分的目的是最大限度地减少大多数用户安装的软件包的大小 (pyarrow
),为专门的用例提供更小、更简洁的软件包 (pyarrow-core
),同时仍然为需要完整软件包的用户提供完整软件包 (pyarrow-all
)。历史上,在 conda-forge 上的 pyarrow
现在是 pyarrow-all
,不过大多数用户可以继续使用 pyarrow
。
The pyarrow-core
软件包包含以下功能
计算函数 (即
pyarrow.compute
)流式处理、序列化和 IPC (即
pyarrow.ipc
)文件系统接口 (即
pyarrow.fs
。注意:计划在将来的版本中将云文件系统 (即 S3、GCS 等) 移动到pyarrow
中,尽管 本地 FS 将保留在pyarrow-core
中。)文件格式:Arrow/Feather、JSON、CSV、ORC (但不是 Parquet)
The 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