apache spark predictProbabilities 不是成员 NaiveBayesModel
apache spark predictProbabilities not a member NaiveBayesModel
当我执行 sbt package 或 sbt assembly 时,我得到如下错误:
值 predictProbabilities 不是 org.apache.spark.mllib.classification.NaiveBayesModel
的成员
但相同的代码在我的 spark-shell
中有效
/home/user1/spark-1.5.2/bin/spark-shell --packages com.databricks:spark-csv_2.10:1.4.0
我使用 spark-1.5.2 和 scala 2.10.4 sbt 0.13.8
我用的是centos 6.5 linux
我确实在这个 link 中看到了 predictProbabilities。
https://spark.apache.org/docs/1.5.2/api/scala/index.html#org.apache.spark.mllib.classification.NaiveBayesModel
我不知道是否需要 sbt assembly 或 io.prediction
但我试过了。没什么区别。得到同样的错误。
有没有人遇到过这样的问题。
如果是这样,你能告诉我解决方案吗?
谢谢!
我的密码是
============================================= =============
import org.apache.spark.mllib.classification.{NaiveBayes, NaiveBayesModel}
import org.apache.spark.mllib.util.MLUtils
val trainData = MLUtils.loadLibSVMFile(sc, "file:///home/user1/nbtest/trainData.nb.svm")
val testData = MLUtils.loadLibSVMFile(sc, "file:///home/user1/nbtest/testData.nb.svm")
val model = NaiveBayes.train(trainData, lambda = 1.0, modelType = "multinomial")
val predictionAndLabel = testData.map(p => (model.predict(p.features), p.label))
val accuracy = 1.0 * predictionAndLabel.filter(x => x._1 == x._2).count() / testData.count()
val testDataFeatures = testData.map(p => p.features)
val probabilities = model.predictProbabilities (testDataFeatures)
============================================= ======================
我的/home/user1/nbtest/build.sbt是这样的
============================================= ================
name := "testBayes"
version := "1.0"
scalaVersion := "2.10.4"
scalaSource in Compile := baseDirectory.value / ""
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.2"
libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "1.5.2"
libraryDependencies += "org.apache.spark" % "spark-mllib_2.10" % "1.4.0"
libraryDependencies += "com.databricks" % "spark-csv_2.10" % "1.4.0"
libraryDependencies += "io.prediction" % "core_2.10" % "0.9.6"
libraryDependencies += "io.prediction" % "sdk" % "0.5.0"
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
============================================= ================
我有 /home/user1/nbtest/project
assembly.sbt
plugins.sbt
assembly.sbt
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")
plugins.sbt
logLevel := Level.Warn
============================================= ================
使用此库代替您正在使用的 spark-mllib 1.4.0 :
libraryDependencies += "org.apache.spark" % "spark-mllib_2.10" % "1.5.2"
当我执行 sbt package 或 sbt assembly 时,我得到如下错误:
值 predictProbabilities 不是 org.apache.spark.mllib.classification.NaiveBayesModel
的成员但相同的代码在我的 spark-shell
中有效/home/user1/spark-1.5.2/bin/spark-shell --packages com.databricks:spark-csv_2.10:1.4.0
我使用 spark-1.5.2 和 scala 2.10.4 sbt 0.13.8
我用的是centos 6.5 linux
我确实在这个 link 中看到了 predictProbabilities。 https://spark.apache.org/docs/1.5.2/api/scala/index.html#org.apache.spark.mllib.classification.NaiveBayesModel
我不知道是否需要 sbt assembly 或 io.prediction 但我试过了。没什么区别。得到同样的错误。
有没有人遇到过这样的问题。 如果是这样,你能告诉我解决方案吗?
谢谢!
我的密码是
============================================= =============
import org.apache.spark.mllib.classification.{NaiveBayes, NaiveBayesModel}
import org.apache.spark.mllib.util.MLUtils
val trainData = MLUtils.loadLibSVMFile(sc, "file:///home/user1/nbtest/trainData.nb.svm")
val testData = MLUtils.loadLibSVMFile(sc, "file:///home/user1/nbtest/testData.nb.svm")
val model = NaiveBayes.train(trainData, lambda = 1.0, modelType = "multinomial")
val predictionAndLabel = testData.map(p => (model.predict(p.features), p.label))
val accuracy = 1.0 * predictionAndLabel.filter(x => x._1 == x._2).count() / testData.count()
val testDataFeatures = testData.map(p => p.features)
val probabilities = model.predictProbabilities (testDataFeatures)
============================================= ======================
我的/home/user1/nbtest/build.sbt是这样的
============================================= ================
name := "testBayes"
version := "1.0"
scalaVersion := "2.10.4"
scalaSource in Compile := baseDirectory.value / ""
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.2"
libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "1.5.2"
libraryDependencies += "org.apache.spark" % "spark-mllib_2.10" % "1.4.0"
libraryDependencies += "com.databricks" % "spark-csv_2.10" % "1.4.0"
libraryDependencies += "io.prediction" % "core_2.10" % "0.9.6"
libraryDependencies += "io.prediction" % "sdk" % "0.5.0"
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
============================================= ================
我有 /home/user1/nbtest/project assembly.sbt plugins.sbt
assembly.sbt
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")
plugins.sbt
logLevel := Level.Warn
============================================= ================
使用此库代替您正在使用的 spark-mllib 1.4.0 :
libraryDependencies += "org.apache.spark" % "spark-mllib_2.10" % "1.5.2"