You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks使用Modin时报No module named 'ray'错误如何解决

Databricks 环境 Modin 运行报 ModuleNotFoundError: No module named 'ray' 解决

故障复现

  • 先后执行pip install modin[all]、pip install modin[ray]安装Modin依赖,安装过程耗时长达15分钟,耗时异常
  • 安装完成后运行以下代码读取S3存储的Parquet文件:
import modin.pandas as md
df = md.read_parquet('s3://path/to/file')
  • 触发报错:ModuleNotFoundError: No module named 'ray'
  • 提前配置环境变量os.environ["MODIN_ENGINE"] = "ray"后重试,报错未解决

故障原因

  • Databricks集群分为Driver、Executor两类节点,Notebook单元格直接执行原生pip命令时,依赖仅会安装在Driver节点,Executor节点不会同步安装。Modin做分布式数据读取时任务会调度到Executor节点执行,节点缺少ray依赖就会抛出模块不存在的报错。
  • modin[all]、modin[ray]的安装标记会拉取ray全量可选依赖,包括dashboard、机器学习扩展等非核心组件,这些组件会和Databricks运行时预装的PyArrow、PySpark等包做版本冲突回溯,反复重试适配版本导致安装耗时异常偏长。
  • Modin仅会在首次导入modin.pandas模块时读取MODIN_ENGINE环境变量,导入完成后再配置环境变量不会生效。

修复步骤

  1. 优先使用集群级依赖安装,避免单节点安装不同步问题
    进入集群配置的库管理页,选择PyPI源安装两个核心包即可,不要带[all]/[ray]的额外依赖标记:
    • modin
    • ray==2.9.0(版本不要超过2.10.0,避免和Databricks预装的grpc版本冲突)
      集群会自动将依赖同步到所有Driver、Executor节点,正常安装耗时在1~2分钟。
  2. 如需在Notebook中临时调试安装,使用Databricks内置的%pip魔法命令,该命令会自动将依赖同步到所有节点,安装完成后重启Python解释器加载依赖:
%pip install modin ray==2.9.0
dbutils.library.restartPython()
  1. 调整代码执行顺序,必须在导入modin.pandas之前配置引擎环境变量:
import os
# 该行必须放在import modin.pandas之前执行
os.environ["MODIN_ENGINE"] = "ray"

import modin.pandas as md
df = md.read_parquet('s3://path/to/file')

如果不想适配ray版本,也可以直接切换为Dask引擎,和Databricks环境兼容性更好,安装命令为%pip install modin "dask[complete]",对应环境变量配置为os.environ["MODIN_ENGINE"] = "dask"即可。

内容的提问来源于stack exchange,提问作者Vishal Balaji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:06:26