正在Spark外部加载Mlib模型



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

val model = SVMWithSGD.train(training, numIterations)
model.save(sc, "~/model")

但我很难在没有火花的情况下从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应用程序中加载模型?

在此处查看PMML模型导出

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

最新更新