搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

pola-rs/polars

数据

用 Rust 编写的高性能 DataFrame 与 SQL 查询引擎,支持 Python、Rust、Node.js 和 R。

40,331
3,239
Rust
MIT
创建于 6 年前

项目介绍

Polars 是一个用 Rust 编写的分析型查询引擎,同时提供 DataFrame API 和 SQL。两种写法经过同一个优化器和执行引擎,也可以在同一条查询里混用 readme:L47-L64。它面向需要在本地处理中大型数据集的数据分析人员、工程师,以及使用 Python、Rust、Node.js 或 R 的开发者。

主要特点:

  • 多线程、向量化执行,可选 NVIDIA GPU 加速。
  • 惰性查询,执行前统一优化。
  • 超出内存的运算可以溢写到磁盘。
  • 使用 Apache Arrow 列式格式,便于零拷贝互操作。
  • 可通过 I/O 和表达式插件用原生代码扩展 readme:L60-L63。

快速使用

Python 是上手最快的入口。先安装:

pip install polars

再执行一段惰性查询:

import polars as pl

df = (
    pl.scan_parquet("orders.parquet")
    .filter(pl.col("status") == "shipped")
    .group_by("customer_id")
    .agg(
        pl.col("amount").sum().alias("total"),
        pl.len().alias("n_orders"),
    )
    .sort("total", descending=True)
    .collect()
)

结果是一个按订单总额降序排列、每位客户一行的 DataFrame。scan_parquet 建立惰性扫描,过滤、聚合和排序会先优化再并行执行 readme:L67-L87。SQL 通过 pl.sql(...) 使用,返回的是普通 LazyFrame,可以继续接表达式方法 readme:L107-L123,更多用法见 SQL 用户指南。

安装与构建选项

除 pip install polars 外,可选依赖由 feature flags 控制,具体见安装指南。需要最新代码时可以从源码编译:安装 Rust、安装 maturin,然后在 py-polars 目录运行对应的 make build* 目标。这些目标在编译时间、运行性能和调试符号之间取舍;老 CPU 不支持 AVX2 时使用 LTS_CPU=1 readme:L144-L176。

使用约束

  • 提供 Python、Rust、Node.js 和 R 的 API,但 Python 绑定包装的是名为 py-polars 的独立 crate,而 Python 包名和模块名都叫 polars readme:L144-L176。
  • out-of-core 不覆盖所有操作,无法这样执行的查询会回退到内存引擎,仍可能超出可用内存 comment by ritchie46, 2022-12-22。
  • GPU 加速是可选功能,且限于 NVIDIA GPU readme:L60-L63。
  • 项目采用 MIT 许可证 readme:L192-L194。

HotRepo 点评

在 2026-11-11 的 Rust 日榜记录中,仓库有 40,316 个 Star、3,235 个 Fork,当天新增 17 个 Star,位列 Rust 日榜第 7。Hacker News 上围绕 1.0.0 发布的讨论认为它不只是 pandas 替代品,有评论者指出,在不得不转向 Spark 之前,纯内存处理能支撑的规模上限被不断推高 comment by andenacitelli, 2024-07-02。这与项目强调惰性优化和磁盘溢写、而不只是比拼基准速度的方向一致。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Polars Pre-release v1.0.0
▲ 24 · 0 条评论 · 2024年6月11日
Rust polars 0.26 is released
▲ 8 · 1 条评论 · 2022年12月22日
Polars releases v1.0.0 – a Pandas alternative
▲ 6 · 3 条评论 · 2024年7月1日