開發社區與支持 | 論壇 | 社群 | 文件 |
---|---|---|---|
Modin 可以在 Linux、Windows 和 MacOS 上使用pip
安裝:
pip install " modin[all] " # (Recommended) Install Modin with Ray and Dask engines.
如果您想使用特定引擎安裝 Modin,我們建議:
pip install " modin[ray] " # Install Modin dependencies and Ray.
pip install " modin[dask] " # Install Modin dependencies and Dask.
pip install " modin[mpi] " # Install Modin dependencies and MPI through unidist.
要透過 unidist(從 unidist 0.5.0 開始)使 Modin 在 MPI 上完全正常運作,需要事先安裝有效的 MPI 實作。否則, modin[mpi]
安裝可能會失敗。有關安裝的更多詳細信息,請參閱 unidist 文件的使用 pip 安裝部分。
注意:從 Modin 0.30.0 開始,我們使用一組精簡的 Ray 依賴項: ray
而不是ray[default]
。這意味著預設不再安裝儀表板和叢集啟動器。如果您需要這些,請考慮安裝ray[default]
和modin[ray]
。
Modin 會自動偵測您安裝的引擎並使用它來調度計算。
使用modin-all
從 conda forge 安裝將透過 unidist 安裝 Modin 和三個引擎:Ray、Dask 和 MPI。
conda install -c conda-forge modin-all
每個引擎也可以單獨安裝(也可以作為多個引擎的組合):
conda install -c conda-forge modin-ray # Install Modin dependencies and Ray.
conda install -c conda-forge modin-dask # Install Modin dependencies and Dask.
conda install -c conda-forge modin-mpi # Install Modin dependencies and MPI through unidist.
注意:從 Modin 0.30.0 開始,我們使用一組精簡的 Ray 依賴項: ray-core
而不是ray-default
。這意味著預設不再安裝儀表板和叢集啟動器。如果您需要這些,請考慮安裝ray-default
和modin-ray
。
有關如何安裝要運行的特定 MPI 實現的更多詳細信息,請參閱 unidist 文件的使用 conda 安裝部分。
為了加快 conda 安裝速度,我們建議使用 libmamba 求解器。為此,請將其安裝在基本環境中:
conda install -n base conda-libmamba-solver
然後在安裝期間使用它,例如:
conda install -c conda-forge modin-ray --experimental-solver=libmamba
或從 conda 22.11 和 libmambasolver 22.12 版本開始:
conda install -c conda-forge modin-ray --solver=libmamba
如果你想選擇一個特定的計算引擎來運行,你可以設定環境變數MODIN_ENGINE
,Modin 將使用該引擎進行計算:
export MODIN_ENGINE=ray # Modin will use Ray
export MODIN_ENGINE=dask # Modin will use Dask
export MODIN_ENGINE=unidist # Modin will use Unidist
如果你想要選擇 Unidist 引擎,你應該設定額外的環境變數UNIDIST_BACKEND
。目前,Modin 僅透過 unidist 支援 MPI:
export UNIDIST_BACKEND=mpi # Unidist will use MPI backend
這也可以在導入 Modin 之前在筆記本/解釋器中完成:
import modin . config as modin_cfg
import unidist . config as unidist_cfg
modin_cfg . Engine . put ( "ray" ) # Modin will use Ray
modin_cfg . Engine . put ( "dask" ) # Modin will use Dask
modin_cfg . Engine . put ( 'unidist' ) # Modin will use Unidist
unidist_cfg . Backend . put ( 'mpi' ) # Unidist will use MPI backend
注意:首次使用 Modin 操作後不應更改引擎,因為這會導致未定義的行為。
在 Linux、MacOS 和 Windows 上,您可以透過 unidist 安裝和使用 Ray、Dask 或 MPI。使用這些引擎中的任何一個都不需要任何知識,因為 Modin 抽象化了所有的複雜性,因此請隨意選擇!
貓熊對象 | Modin 的 Ray 引擎覆蓋範圍 | Modin 的 Dask 引擎覆蓋範圍 | Modin 的 Unidist 引擎覆蓋範圍 |
---|---|---|---|
pd.DataFrame | |||
pd.Series | |||
pd.read_csv | ✅ | ✅ | ✅ |
pd.read_table | ✅ | ✅ | ✅ |
pd.read_parquet | ✅ | ✅ | ✅ |
pd.read_sql | ✅ | ✅ | ✅ |
pd.read_feather | ✅ | ✅ | ✅ |
pd.read_excel | ✅ | ✅ | ✅ |
pd.read_json | ✳️ | ✳️ | ✳️ |
pd.read_ | ✴️ | ✴️ | ✴️ |
有關 Modin 的完整文檔,請訪問我們的 ReadTheDocs 頁面。
注意:在本地模式(無叢集)下,Modin 將建立並管理本地(Dask 或 Ray)叢集以用於執行。
要使用Modin,您不需要指定如何分配數據,甚至不需要知道您的系統有多少核心。事實上,您可以繼續使用以前的 pandas 筆記本,同時體驗 Modin 的顯著加速,即使在單一電腦上也是如此。變更匯入語句後,您就可以像使用 pandas 一樣使用 Modin 了!
modin.pandas
DataFrame 是一個極為輕量級的平行 DataFrame。 Modin 透明地分配資料和計算,以便您可以繼續使用相同的 pandas API,同時更快地處理更多資料。由於 Modin 重量輕,因此可以在具有 4 個實體核心的筆記型電腦上提供高達 4 倍的加速。
在 pandas 中,當您進行任何類型的計算時,一次只能使用一個核心。借助 Modin,您可以使用電腦上的所有 CPU 核心。即使對於像read_csv
這樣的傳統同步任務,我們也可以透過在整個機器上有效地分配工作來實現大幅加速。
import modin . pandas as pd
df = pd . read_csv ( "my_dataset.csv" )
資料科學家通常必須在不同的工具之間切換來操作不同大小的資料集。使用 pandas 處理大型資料幀速度很慢,而且 pandas 不支援處理太大而無法放入可用記憶體的資料幀。因此,適用於幾 MB 資料原型設計的 pandas 工作流程無法擴展到數十或數百 GB(取決於電腦的大小)。 Modin 支援對不適合記憶體的資料進行操作,因此您可以輕鬆處理數百 GB 的數據,而不必擔心顯著的速度減慢或記憶體錯誤。 Modin 是一個具有叢集和核外支援的 DataFrame 庫,在叢集中具有出色的單節點效能和高可擴展性。
我們將 Modin 的架構設計為模組化,因此我們可以在開發和改進時插入不同的元件:
modin.pandas
目前正在積極開發中。歡迎提出請求和貢獻!
有關如何為 Modin 做出貢獻的更多信息,請查看 Modin 貢獻指南。
阿帕契許可證 2.0