Не удается импортировать XGBoostClassifier из xgboost4j-spark - PullRequest
0 голосов
/ 30 января 2019

Я установил 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.

...