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

使用MLflow Spark UDF调用TensorFlow MNIST模型时报错,求解析

错误含义解析:MNIST模型Spark预测报错

这个错误的核心是Spark ML的Vectors.dense生成的向量类型无法被MLflow加载的TensorFlow模型识别。

具体拆解:

  • 你的TensorFlow模型定义时输入形状是(28, 28, 1),但你将x_test reshape为一维数组后,用Vectors.dense包装成了Spark的DenseVector类型。在Spark内部,这个类型是以一个包含type、size、indices、values的结构体(struct)存在的。
  • MLflow的spark_udf无法将这种Spark特有的结构体数据转换成TensorFlow模型能处理的张量格式,因此抛出了「不支持该数据类型」的错误。

简单修正思路

不要使用Spark的Vectors类型包装数据,直接传递原始数值数组:

arr = map(lambda x: (x.tolist(), ), x_test.reshape(num_rows, -1))
df = spark.createDataFrame(arr, ["features"])
# 调用UDF时直接传入列,无需用struct包裹
output = df.withColumn('predictions', loaded_model(col("features")))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:35:36