如何用 conda 或 pip 安装 PyArrow 并完成第一次建表和保存 Parquet
【免费下载链接】arrowApache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics项目地址: https://gitcode.com/GitHub_Trending/arrow3/arrow
如果你的目标是在自己的 Python 环境里装好 PyArrow,然后完成一次最小闭环:创建一张列式表、把它写成 Parquet 文件、再读回来确认数据完整,这篇文章按 Installing PyArrow 和 Getting Started 给出的真实步骤走一遍这条路径,并说明每一步如何判断是否成功。
适用前提来自官方安装文档:PyArrow 在 Windows、macOS 和多种 Linux 发行版上定期构建和测试,官方强烈建议使用 64 位系统;当前版本兼容 Python 3.11、3.12、3.13 和 3.14。
确认环境满足要求
开始安装前先核对两点:
- 系统是 64 位的 Windows、macOS 或 Linux 发行版;
- Python 版本在 3.11–3.14 之间。
不满足这两条时,文档没有给出兼容保证,应先把环境调整到上述范围内再继续。
用 conda 安装(推荐路径)
官方给出的 conda 安装命令是从 conda-forge 渠道安装:
conda install -c conda-forge pyarrowconda-forge 上 PyArrow 实际上发布为三个包:pyarrow-core(最小核心)、pyarrow(在核心之外增加了 Acero、dataset 和 Parquet 支持)、pyarrow-all(再增加 Flight、Flight SQL 和 Gandiva)。
这里有一个直接影响本任务的选择点:pyarrow-core不包含 Parquet,只有 Arrow/Feather、JSON、CSV、ORC 等格式。因此要完成“保存 Parquet”,用默认命令安装pyarrow即可;如果你出于其他原因只想装最小包,文档给出的组合是同时安装pyarrow-core和libparquet:
conda install -c conda-forge pyarrow-core libparquet对“建表 + 存 Parquet”这个任务来说,第一条单包命令是最短路径。
用 pip 安装
Windows、Linux 和 macOS 上都可用 PyPI 上的最新包:
pip install pyarrow两个文档明确给出的注意事项:
- Linux 上需要 pip >= 19.0 才能检测到预编译二进制包;
- 如果在 Windows 上用 pip 安装的 wheel 遇到 import 问题,可能需要安装 Visual Studio 对应的最新 Visual C++ Redistributable。
pip 只有一个pyarrow包,它自带 Parquet 支持,不需要像 conda 那样区分包变体。
验证 Parquet 支持可用
安装完成后,Parquet 文档 给出的判断方式是:通过 pip 或 conda 安装的pyarrow应当已经内置 Parquet 支持,直接 import 即可验证:
import pyarrow.parquet as pq如果这一行没有抛出 ImportError,说明当前安装已经具备读写 Parquet 的能力,可以继续下一步。文档同时说明:只有从源码构建时才需要用-DARROW_PARQUET=ON之类参数显式启用 Parquet,pip/conda 安装路径不涉及。
创建第一张表
Getting Started 中的示例用三个数组组成一张表。Arrow 的数组是同一类型数据的集合,多个数组绑定列名后就构成表:
import pyarrow as pa days = pa.array([1, 12, 17, 23, 28], type=pa.int8()) months = pa.array([1, 3, 5, 7, 1], type=pa.int8()) years = pa.array([1990, 2000, 1995, 2000, 1995], type=pa.int16()) birthdays_table = pa.table([days, months, years], names=["days", "months", "years"]) print(birthdays_table)文档示例输出(注意这是文档示例,实际打印可能因版本略有差异):
pyarrow.Table days: int8 months: int8 years: int16 ---- days: [[1,12,17,23,28]] months: [[1,3,5,7,1]] years: [[1990,2000,1995,2000,1995]]看到三列、各 5 行的类型标注与数据,即说明建表成功。
保存为 Parquet 并读回验证
建表之后,保存就是一个函数调用。文件会写到 Python 进程当前工作目录:
import pyarrow.parquet as pq pq.write_table(birthdays_table, 'birthdays.parquet')写盘没有任何返回值输出,判断成功的方式是读回来核对:
reloaded_birthdays = pq.read_table('birthdays.parquet') print(reloaded_birthdays)文档示例的读回结果(同样是文档示例输出):
pyarrow.Table days: int8 months: int8 years: int16 ---- days: [[1,12,17,23,28]] months: [[1,3,5,7,1]] years: [[1990,2000,1995,2000,1995]]读回的表的列名、类型和数值与写入前一致,即完成“建表 — 存 Parquet — 读回”的完整验证。
已知限制与下一步
- 安装方式的影响:若用了 conda 的
pyarrow-core单包而没带libparquet,import pyarrow.parquet会失败,这就是前面验证步骤存在的意义。 - Windows 上如果 PyArrow 是用 Clang/libc++ 构建的,需要用户提供 IANA 时区数据库,默认检测路径为
%USERPROFILE%\Downloads\tzdata,非默认位置需用pa.set_timezone_db_path("custom_path")设置(该函数已标记 deprecated)。主流预编译包使用 MSVC 或 MinGW GCC 13+ 构建,无此额外配置。 - 完成本任务后,文档建议的延伸方向是阅读 Parquet 读写文档(
docs/source/python/parquet/index.rst,涵盖单文件读写、数据类型处理、分区数据集)以及 PyArrow 完整文档入口(docs/source/python/index),按需深入即可。
【免费下载链接】arrowApache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics项目地址: https://gitcode.com/GitHub_Trending/arrow3/arrow
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考