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

Azure Databricks中MLFlow Recipes训练时临时文件缺失错误

解决Azure Databricks中MLFlow Recipes训练LGBM时的临时文件找不到错误

问题背景

在Azure Databricks环境首次使用MLFlow Recipes,此前数据摄入到预测流程正常,训练LGBMClassifier模型时触发FileNotFoundError,提示无法找到临时目录/tmp/repl_tmp_data/ReplId-xxx/tmpxxx,更换MLFlow 2.7.0及其他版本均无法解决。

解决方法

1. 预创建临时目录父路径

报错显示MLFlow尝试创建子目录时,父目录/tmp/repl_tmp_data可能不存在,手动提前创建该目录:

import os
# 创建父目录,exist_ok=True避免重复创建报错
os.makedirs("/tmp/repl_tmp_data", exist_ok=True)

# 之后再执行MLFlow Recipes代码
experiment_name = "experiment_name"
if not mlflow.get_experiment_by_name(experiment_name):
    mlflow.create_experiment(name=experiment_name )
else:
    mlflow.set_experiment(experiment_name)
experiment = mlflow.get_experiment_by_name(experiment_name)

r = Recipe(profile="databricks")
r.clean()
r.inspect()
r.run("ingest")
r.run("split")
r.run("transform")
r.run("train")

2. 自定义MLFlow临时目录

通过设置环境变量指定一个稳定的、有读写权限的临时目录,比如Databricks本地磁盘路径:

import os
# 指定自定义临时目录
os.environ["MLFLOW_TMPDIR"] = "/local_disk0/tmp/mlflow_temp"
# 确保目录存在
os.makedirs(os.environ["MLFLOW_TMPDIR"], exist_ok=True)

# 后续执行MLFlow Recipes流程...

3. 检查集群权限与临时目录配置

  • 确认集群对/tmp或自定义临时目录有读写权限,可通过!ls -ld /tmp命令查看权限设置。
  • 检查集群Spark配置中的spark.local.dir参数,确保该配置指向的目录存在且权限正常,MLFlow可能会使用该目录作为临时文件存储路径。

4. 切换至作业模式运行

交互式Repl环境的临时目录可能存在自动清理或权限问题,将代码封装为Databricks Job运行,作业环境的临时目录管理更稳定,可避免此类路径问题。

5. 匹配兼容的依赖版本

确保MLFlow、lightgbm、scikit-learn版本与Databricks Runtime版本兼容:

  • 例如Databricks Runtime 13.x推荐使用MLFlow 2.9及以上版本。
  • 执行%pip install mlflow==2.9.0 lightgbm==3.3.5安装兼容版本后重试。

内容的提问来源于stack exchange,提问作者J.Hoeffer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:30:09