Я установил xgboost на свою машину, и теперь я пытаюсь запустить простой проект scala на spark, пытаясь использовать xgboost4j, но получаю следующую ошибку.
Исключение в потоке"main" java.lang.NoClassDefFoundError: ml / dmlc / xgboost4j / scala / spark / XGBoostClassifier
Я следовал инструкциям, показанным здесь https://xgboost.readthedocs.io/en/latest/build.html и здесь https://xgboost.readthedocs.io/en/latest/jvm/xgboost4j_spark_tutorial.html
Мой проект собирается правильно с помощью sbt.
Когда я заглядываю в мой
/xgboost/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala
, класс XGBoostClassifier не существует, как ожидается, как показано в API Scala.
Он существуетв
/xgboost/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark
Ошибка появляется, когда я пытаюсь импортировать, как показано
import ml.dmlc.xgboost4j.scala.spark.XGBoostClassifier
Мой build.sbt выглядит так
name := "NewXGBoost"
version := "1.0"
scalaVersion := "2.11.8"
resolvers ++= Seq(
"GitHub Repo" at "https://raw.githubusercontent.com/CodingCat/xgboost/maven-repo/",
Resolver.mavenLocal
)
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.2"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.3.2"
libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.3.2"
libraryDependencies += "org.apache.spark" %% "spark-yarn" % "2.3.2"
libraryDependencies += "ml.dmlc" % "xgboost4j-spark" % "0.82-SNAPSHOT"
libraryDependencies += "ml.dmlc" % "xgboost4j" % "0.82-SNAPSHOT"
ivyScala := ivyScala.value map { _.copy(overrideScalaVersion = true)}
Требуемый результат для правильного импорта XGBoostClassifier.