2017-08-08 58 views
0

我試圖沿着databricks的xgboost例如跟隨發現hereXGBoost上databricks - 過時斯卡拉版

一切似乎直到我得到實際的培訓部分做工精細:

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

在這點我得到一個錯誤。由於堆棧跟蹤很短,我會在這裏貼:

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) 

之後做一些研究,看來,對於錯誤的原因是不兼容的版本階。 databricks社區版集羣預先配置了scala版本2.10。這cannot be modified

這是否意味着無法使用社區版運行xgboost,或者是否有解決此問題的方法?

回答

1

我認爲你鏈接的論壇帖子有點過時。 Databricks Community版本實際上允許您選擇羣集的Scala版本。

首先,導航到集羣頁面,點擊藍色的「創建羣集」按鈕:

enter image description here

從「Databricks運行時版本」下拉菜單中,您可以選擇其中包含一個運行時版本的所需Scala和星火版本:

enter image description here

+0

你是對的,看來我被檢查的論壇確實已經過時,你的解決方案似乎工作。我將檢查我的xgboost問題是否用新的scala版本解決,但是我接受答案,因爲它解決了根本問題 – pilu