我正在学习scala,我正在尝试加载一个我运行/适合数据的模型。运行需要6个小时,如果我找不到保存/加载输出的方法,我恐怕不得不重新运行。
我将KMeans作为管道的一部分运行。我将训练数据集上运行的管道输出保存为“模型”,这就是我尝试加载的内容。
在运行模型之后,我能够使用以下方式保存(或者至少我以为我是)
model.write.overwrite().save("/analytics_shared/qoe/km_model")
我的问题是如何将其加载回来,然后我可以使用它来对新数据进行聚类/评分,而无需重新运行需要6小时的培训。
答案 0 :(得分:5)
您应该使用KMeansModel.load方法。
load(path:String):KMeansModel 从输入路径读取ML实例,快捷方式为
Get-ADUser -Filter "Name -like '*users_name*'" | select *
。
在你的情况下,它如下:
read.load(path)
我将KMeans作为管道的一部分运行。我将训练数据集上运行的管道输出保存为“模型”,这就是我尝试加载的内容。
使用ML Pipeline,只需将import org.apache.spark.ml.clustering.KMeansModel
val model = KMeansModel.load("/analytics_shared/qoe/km_model")
替换为PipelineModel即可。
KMeansModel