2017-08-08 4 views
0

ich auf dem xgboost Beispiel auf databricks zu folgen versuchen gefunden hereXGBoost auf databricks - veraltete scala Version

Alles gut zu funktionieren scheint, bis ich zum eigentlichen Training Teil erhalten:

val xgboostModelRDD = XGBoost.trainWithRDD(trainRDD, ...) 

Auf diesem Punkt bekomme ich einen Fehler. Da die Stacktrace eher kurz ist würde ich es hier einfügen:

java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object; 
at ml.dmlc.xgboost4j.scala.spark.XGBoost$.overrideParamsAccordingToTaskCPUs(XGBoost.scala:232) 
at ml.dmlc.xgboost4j.scala.spark.XGBoost$.trainWithRDD(XGBoost.scala:293) 

Nach einiger Forschung, scheint es, dass der Grund für diesen Fehler nicht kompatibel scala-Version. Der Databricks Community Edition-Cluster ist mit der Scala-Version 2.10 vorkonfiguriert. Dies cannot be modified.

Heißt das, dass es unmöglich ist, xgboost mit der Community Edition ausgeführt werden, oder gibt es eine Möglichkeit, dieses Problem zu lösen?

Antwort

1

Ich denke, dass das Forum Post, die Sie im Zusammenhang mit etwas veraltet ist. Databricks Community Edition ermöglicht es Ihnen tatsächlich, die Scala-Version des Clusters zu wählen.

Zuerst navigieren Sie zu der Cluster-Seite und klicken Sie auf den blauen "Create Cluster" Button:

enter image description here

Von der "Databricks Runtime Version" Drop-Down-Menü können Sie eine Runtime-Version wählen, die enthält Ihre gewünschte Scala und Funken Versionen:

enter image description here

+0

Sie haben Recht, so scheint es, dass das Forum ich war die Überprüfung tatsächlich veraltet ist und Ihre Lösung scheint zu funktionieren. Ich werde überprüfen, ob mein xgboost-Problem mit der neuen scala-Version behoben wurde, aber ich akzeptiere die Antwort trotzdem, da das Root-Problem behoben wurde – pilu