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

在Databricks上使用Ray遇ArrowInvalid错误,求调试及环境变量设置方法

Databricks中PyCaret tune_model报错ArrowInvalid: URI has empty scheme: '~/ray_results'的调试与解决

问题背景

在Databricks Notebook中执行以下操作:

依赖安装

%pip install jinja2 --upgrade
%pip install mlflow --upgrade
%pip install pycaret==3 catboost optuna lightgbm hyperopt tune-sklearn ray[tune]
%pip install pandas==1.4.0

代码执行

import pandas as pd
import sys
import mlflow
import pyspark.sql.functions as F
from hyperopt import hp
from hyperopt.pyll.base import scope
from pycaret.classification.oop import ClassificationExperiment
space = {...
exp = ClassificationExperiment()
exp.setup(...
lgbm = exp.create_model("lightgbm", verbose=False)
sys.stdout.fileno = lambda: False
lgbm_ft = exp.tune_model(lgbm, ...

模型可正常创建并在MLflow Experiments中显示,也能通过mlflow加载,但执行exp.tune_model时触发错误:

ArrowInvalid: URI has empty scheme: '~/ray_results'

一、错误调试方向

  • 检查Ray输出路径解析:报错指向的~/ray_results路径在Databricks环境中无法直接识别用户主目录符号~,需确认PyCaret调用Ray时是否使用了未正确解析的相对路径,可尝试手动指定绝对路径(如Databricks的DBFS路径/dbfs/xxx/ray_results)。
  • 验证版本兼容性:PyCaret 3.x与Ray[tune]可能存在版本适配问题,可尝试切换到PyCaret官方推荐的Ray版本,或调整两者版本匹配。
  • 排查环境权限与路径限制:确认当前集群对目标路径有读写权限,Databricks本地存储存在限制,建议优先使用DBFS路径而非本地路径。
  • 检查tune_model参数配置:核对tune_model中与调优框架相关的参数(如search_library、search_algorithm),确认Ray后端的配置是否正确,是否存在未明确设置的路径参数。

二、设置RAY_AIR_NEW_OUTPUT=0的方法

在Databricks Notebook中有两种生效方式:

  1. Notebook内前置设置:
    在导入Ray或PyCaret之前执行以下代码:
import os
os.environ["RAY_AIR_NEW_OUTPUT"] = "0"
  1. 集群全局设置:
    通过集群初始化脚本添加环境变量,脚本内容如下:
export RAY_AIR_NEW_OUTPUT=0

添加后重启集群,确保环境变量在集群启动时加载生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:38:21