用途:Polars 是 Rust 编写的超高速 DataFrame 库,采用 Apache Arrow 列式格式、惰性求值与多线程并行查询执行,面向高性能内存及流式数据处理。
主要能力:据资料,其列式处理速度比 Pandas 快 5 至 30 倍;支持超出内存的数据分析,通过 Lazy API 的 collect(streaming=True) 流式处理大于 RAM 的数据集;具备自动查询优化、谓词下推与投影下推;可与 PyTorch、DuckDB、Parquet 读取器零拷贝共享内存。
使用方式:用 pl.scan_csv 或 pl.scan_parquet 构建 LazyFrame,链式调用 filter、with_columns、group_by、agg、sort,最后 collect() 执行;可用 explain() 查看优化后的执行计划。表达式用 pl.col、pl.when/then/otherwise 组合。
最佳实践:大数据优先用 scan_* 与 LazyFrame 而非 eager 的 read_*;接近或超过内存时用 collect(streaming=True);在单个 with_columns 或 select 中组合变换以启用并行;用原生表达式替代 Python lambda 或 map_elements。
限制与注意:map_elements 或 apply 会破坏 Rust 并行执行,非必要不用;非必要不转 Pandas,可用 PyArrow 零拷贝;避免在循环中反复 collect。常见问题包括空 DataFrame 表达式求值错误、concat 时 SchemaMismatchError、collect 内存不足,可分别检查过滤条件、显式 cast 类型、启用流式引擎。
适用场景:高性能内存与流式 DataFrame、超内存分析、并行查询、与 Arrow 生态互操作。具体收费、价格与平台支持暂未提供。