我们如何使用 spark 加载机器学习模型 .sav 文件

Posted

技术标签:

【中文标题】我们如何使用 spark 加载机器学习模型 .sav 文件【英文标题】:how we load machine learning Model .sav file with spark 【发布时间】:2021-12-25 16:49:23 【问题描述】:

我想加载已在 spark 中保存为 .sav 文件的机器学习模型 我用过

val loaded_model = Pipeline.load("model_final.sav")    

val loaded_model = PipelineModel.load("model_final.sav")

我遇到了异常

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:64)
Caused by: java.lang.NoClassDefFoundError: org/apache/spark/ml/Pipeline$
    at migration2$.main(migration2.scala:61)
    at migration2.main(migration2.scala)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: org.apache.spark.ml.Pipeline$
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 7 more

【问题讨论】:

您使用的是什么版本的 Java? scala 2.11 不是 java 【参考方案1】:

从您的依赖项中删除 provided。所以如下:

libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.1.0" % "provided"

应改为:

libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.1.0"

【讨论】:

以上是关于我们如何使用 spark 加载机器学习模型 .sav 文件的主要内容,如果未能解决你的问题,请参考以下文章

可以将 mlflow.spark 保存的模型加载为 Spark/Scala 管道吗?

手把手带你玩转Spark机器学习-使用Spark构建分类模型

Spark机器学习:Spark 编程模型及快速入门

推荐收藏保存和加载机器学习模型的这两个方法不错

推荐收藏保存和加载机器学习模型的这两个方法不错

学习笔记Spark—— Spark MLlib应用—— 机器学习简介Spark MLlib简介