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

Databricks使用MLflow注册模型预测后调用.show()报错如何解决

报错原因

你注册的model1是Spark MLlib类型的MLflow模型,当使用mlflow.pyfunc.spark_udf加载生成预测UDF时:

  • UDF会分发到Spark Worker节点执行
  • Spark类型模型的pyfunc加载逻辑会默认尝试在Worker节点本地启动独立SparkContext初始化模型,而Databricks的Worker节点不允许启动独立SparkContext,Java网关启动失败就触发该报错。
解决方案

方案1:直接加载Spark原生模型执行预测(推荐)

不需要生成UDF,直接调用Spark模型的原生transform方法即可,完全适配Databricks PySpark运行环境,修改后代码如下:

import mlflow.spark

model_details = mlflow.tracking.MlflowClient().get_latest_versions('model1', stages=['staging'])[0]
# 加载Spark原生模型
model = mlflow.spark.load_model(model_uri=model_details.source)
input_df = sdf.drop('progression')
# 调用transform生成预测结果
df = model.transform(input_df)
# 正常展示结果
df.show(truncate=False)

方案2:注册非Spark类型的模型

如果必须使用pyfunc UDF做预测,你可以在训练模型并记录到MLflow时,存储非Spark类型的模型(比如sklearn、xgboost等原生Python风味模型),这类模型加载为pyfunc UDF时不会尝试启动SparkContext,就不会触发该报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:06:03