當前位置: 妍妍網 > 碼農

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. 在後台發訊息「 資料庫工具 」即可獲取。