2017-08-08 5 views
0

Je suis en train de suivre l'xgboost exemple sur databricks trouvé hereXGBoost sur databricks - version scala obsolète

Tout semble fonctionner très bien jusqu'à ce que je la partie de la formation proprement dite:

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

A ce point que je reçois une erreur. Étant donné que le stacktrace est assez court, je vais le coller ici:

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) 

Après avoir fait quelques recherches, il semble que la raison de cette erreur est incompatible version scala. Le cluster d'édition de la communauté databricks est préconfiguré avec la version 2.10 de scala. Ce cannot be modified. Cela signifie-t-il qu'il est impossible d'exécuter xgboost à l'aide de l'édition de la communauté ou existe-t-il un moyen de résoudre ce problème?

Répondre

1

Je pense que le message sur le forum auquel vous avez accédé est légèrement dépassé. L'édition Databricks Community vous permet en fait de choisir la version Scala du cluster.

D'abord, accédez aux clusters page et cliquez sur le bouton bleu "Créer un cluster":

enter image description here

Dans le menu déroulant "Databricks Runtime Version", vous pouvez choisir une version d'exécution qui contient votre désirées versions Scala et Spark:

enter image description here

+0

Vous avez raison, il semble que le forum, je vérifiais est en effet pas à jour et votre solution semble fonctionner. Je vais vérifier que mon problème de xgboost est résolu avec la nouvelle version de scala, mais j'accepte quand même la réponse car elle a résolu le problème racine – pilu