Polars 采用 Apache Arrow 作为底层技术,通过列式存储和内存优化,实现了极高的处理速度和极低的内存占用,即使是处理数十 GB 的数据集也能得心应手。无论你是 Rust 开发者还是 Python 爱好者,Polars 都能满足你的数据处理需求。无论是科学计算、机器学习,还是数据分析,Polars 都能提供高效的解决方案。
特性
主要特性:
- 快速:使用 Rust 语言从头构建,设计接近底层硬件,无需外部依赖。
- I/O 支持:原生支持本地存储、云存储和数据库等常见数据存储层。
- 直观 API:编写符合直觉的查询语句,由 Polars 内部的查询优化器确定最有效的执行方式。
- 内存外处理:支持流式 API,无需将所有数据加载到内存中即可处理结果。
- 并行处理:利用机器的多核 CPU,无需额外配置即可分配工作负载。
- 向量化查询引擎:使用 Apache Arrow 这种列式数据格式和 SIMD 优化 CPU 使用。
安装
Polars 是一个库,安装非常简单,可以通过对应编程语言的包管理器来完成。
Python
pip install polars
Rust
cargo add polars -F lazy
# 或者在 Cargo.toml 文件中添加
[dependencies]
polars = { version = "x", features = ["lazy", ...] }
对于不支持 AVX2 的旧 CPU,可以使用以下命令安装:
pip install polars-lts-cpu
大索引
默认情况下,Polars 支持的行数限制为约 42 亿行。通过启用大索引,可以将这个限制增加到约 18 万亿行。
Python
pip install polars-u64-idx
Rust
cargo add polars -F bigidx
# 或者在 Cargo.toml 文件中添加
[dependencies]
polars = { version = "x", features = ["bigidx", ...] }
导入库
Python
import polars as pl
Rust
use polars::prelude::*;