【问题标题】:Loading Mllib models outside Spark在 Spark 外部加载 Mllib 模型
【发布时间】:2016-08-25 03:20:40
【问题描述】:

我正在使用 mllib 在 spark 中训练模型并保存它:

val model = SVMWithSGD.train(training, numIterations)

model.save(sc, "~/model")

但我无法从没有 spark 的 java 应用程序加载它以进行实时预测。

SparkConf sconf = new SparkConf().setAppName("Application").setMaster("local");
SparkContext sc = new SparkContext(sconf);
SVMModel model = SVMModel.load(sc, "/model");

我明白了:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/SparkConf
    at ModelUser$.main(ModelUser.scala:11)
    at ModelUser.main(ModelUser.scala)
    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:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.SparkConf

有没有办法在普通的java应用程序中加载模型?

【问题讨论】:

标签: java scala apache-spark machine-learning apache-spark-mllib


【解决方案1】:

看看PMML模型导出here

【讨论】:

  • 不幸的是,目前只有少数模型具有这种导出到 PMML 的方法。 :(
【解决方案2】:

spark 中的 PPML 模型导出不再维护,只有旧的 RDD api 支持它。 我一直在使用jpmml-sparkml 来解决问题。它还具有用于独立模型执行的 java 运行时。

【讨论】:

    猜你喜欢
    • 2019-12-06
    • 2016-03-20
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 2015-04-10
    • 2017-10-07
    • 1970-01-01
    相关资源
    最近更新 更多