Polars – 一个速度极快用于处理结构化数据的 DataFrame 库

Polars 采用 Apache Arrow 作为底层技术,通过列式存储和内存优化,实现了极高的处理速度和极低的内存占用,即使是处理数十 GB 的数据集也能得心应手。无论你是 Rust 开发者还是 Python 爱好者,Polars 都能满足你的数据处理需求。无论是科学计算、机器学习,还是数据分析,Polars 都能提供高效的解决方案。

file

特性

主要特性:

  • 快速:使用 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::*;

官方链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注