开发社区与支持 | 论坛 | 社交 | 文档 |
---|---|---|---|
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