当前位置: 欣欣网 > 码农

26.2K Star,高性能多线程数据处理库

2024-04-30码农

Hi,骚年,我是大 G,公众号「 GitHub 指北 」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。

导语

今天推荐一个高性能的多线程数据处理库,采用 Apache Arrow 作为底层技术,提供了低内存占用和高处理速度的优势。它设计了简单易用的 API,支持处理大数据集(例如 50GB),使数据处理更加高效。Polars 支持包括 Rust 和 Python 在内的多种编程语言,适合需要处理大规模数据集的开发者使用。

性能

速度极快

极地的速度非常快。事实上,它是可用的性能最佳的解决方案之一。查看 TPC-H 基准测试 结果。

轻的

Polars 也非常轻。它具有零所需的依赖项,这在导入时间中有所体现:

  • 极地:70ms

  • numpy:104ms

  • 熊猫:520 毫秒

  • 处理大于 RAM 的数据

    如果您的数据无法装入内存,Polars 的查询引擎能够以流式处理方式处理您的查询(或部分查询)。这大大减少了内存需求,因此您也许能够在笔记本电脑上处理 250GB 的数据集。收集以 collect(streaming=True) 运行查询流。 (这可能会慢一点,但仍然很快!)

    设置

    Python

    安装最新的 Polars 版本:

    pip install polars

    我们还有一个 conda 包 ( conda install -c conda-forge polars ),但 pip 是安装 Polars 的首选方式。

    安装 Polars 以及所有可选依赖项。

    pip install 'polars[all]'

    您还可以安装所有可选依赖项的子集。

    pip install 'polars[numpy,pandas,pyarrow]'

    有关可选依赖项的更多详细信息,请参阅 用户指南

    要查看当前的 Polars 版本及其可选依赖项的完整列表,请运行:

    pl.show_versions()

    目前发布非常频繁(每周/每隔几天),因此定期更新 Polars 以获取最新的错误修复/功能可能不是一个坏主意。

    Rust

    您可以从 获取最新版本 crates.io ,或者如果您想使用最新功能/性能改进,请指向 main 此存储库的分支。

    polars = { git = "https://github.com/pola-rs/polars", rev = "<optional git tag>" }

    需要 Rust 版本 >=1.71

    GitHub 地址

    1. 点击下方的公众号;

    2. 在后台发消息「 数据库工具 」即可获取。