在Spark外部加载Mllib模型

3

我正在使用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应用程序中加载模型?

2个回答

0

请查看PMML模型导出此处


很遗憾,目前只有少数模型具备导出为PMML格式的方法。 :( - bartektartanus

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接