san*_*aya 4 apache-spark apache-spark-ml
我想使用 Java 中的 Apache Spark 训练逻辑回归模型。作为第一步,我想仅训练模型一次并保存模型参数(截距和系数)。随后使用保存的模型参数在稍后的时间点进行评分。我可以使用以下代码将模型保存在镶木地板文件中
LogisticRegressionModel trainedLRModel = logReg.fit(data);
trainedLRModel.write().overwrite().save("mypath");
Run Code Online (Sandbox Code Playgroud)
当我加载模型进行评分时,出现以下错误。
LogisticRegression lr = new LogisticRegression();
lr.load("//saved_model_path");
Exception in thread "main" java.lang.NoSuchMethodException: org.apache.spark.ml.classification.LogisticRegressionModel.<init>(java.lang.String)
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.getConstructor(Class.java:1825)
at org.apache.spark.ml.util.DefaultParamsReader.load(ReadWrite.scala:325)
at org.apache.spark.ml.util.MLReadable$class.load(ReadWrite.scala:215)
at org.apache.spark.ml.classification.LogisticRegression$.load(LogisticRegression.scala:672)
at org.apache.spark.ml.classification.LogisticRegression.load(LogisticRegression.scala)
Run Code Online (Sandbox Code Playgroud)
有没有办法训练和保存模型,然后评估(评分)?我在 Java 中使用 Spark ML 2.1.0。
我在 pyspark 2.1.1 中面临同样的问题,当我从 LogisticRegression 更改为 LogisticRegressionModel 时,一切正常。
LogisticRegression.load("/model/path") # not works
LogisticRegressionModel.load("/model/path") # works well
Run Code Online (Sandbox Code Playgroud)