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

Spark ML中Pipeline训练后如何保存模型至HDFS及加载使用?

回答:Spark ML Pipeline模型的保存与加载

当然可以!Spark ML完全支持将训练好的PipelineModel保存到HDFS(或其他兼容的分布式存储系统),这样就能避免重复执行耗时的训练过程,下次直接加载模型做预测就行。

一、将训练好的模型保存到HDFS

你通过pipeline.fit(training)得到的model其实是PipelineModel对象,直接调用它的save()方法就能存到HDFS上。示例代码如下:

import org.apache.spark.ml.PipelineModel

// 假设你已经训练好model
val model = pipeline.fit(training)

// 保存到HDFS指定路径,路径格式为hdfs://namenode-host:port/模型存储路径
model.save("hdfs://your-nn-address:9000/spark-models/my-logistic-regression-pipeline")

⚠️ 注意:如果指定的HDFS路径已经存在,Spark会抛出异常。如果需要覆盖已有路径,可以在保存前先设置配置:

// 在SparkSession初始化时添加这个配置,允许覆盖输出路径
spark.conf.set("spark.hadoop.validateOutputSpecs", "false")

二、从HDFS加载模型并进行预测

需要使用PipelineModel.load()方法加载保存的模型,加载完成后就可以像使用训练好的模型一样调用transform()做预测了:

import org.apache.spark.ml.PipelineModel

// 从HDFS加载模型
val loadedModel = PipelineModel.load("hdfs://your-nn-address:9000/spark-models/my-logistic-regression-pipeline")

// 用加载后的模型对测试数据做预测
val predictions = loadedModel.transform(testData)

这样你就不用每次都重新跑训练流程啦,直接加载模型就能快速完成预测任务~

内容的提问来源于stack exchange,提问作者Knows Not Much

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:56:10