如何用 conda 或 pip 安装 PyArrow 并完成第一次建表和保存 Parquet
2026/9/14 6:04:29 网站建设 项目流程

如何用 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 pyarrow

conda-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-corelibparquet

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单包而没带libparquetimport 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询