databricks 上的 XGBoost - 过时的 scala 版本

XGBoost on databricks - outdated scala version

我正在尝试按照找到的数据块上的 xgboost 示例进行操作 here

在我进入实际训练部分之前,一切似乎都运行良好:

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)

经过一些研究,该错误的原因似乎是不兼容的 Scala 版本。 Databricks 社区版集群预配置了 scala 版本 2.10。这个cannot be modified.

这是否意味着无法使用社区版 运行 xgboost,或者是否有解决此问题的方法?

我认为您链接到的论坛 post 有点过时了。 Databricks 社区版实际上允许您选择集群的 Scala 版本。

首先,导航至集群页面并单击蓝色 "Create Cluster" 按钮:

从 "Databricks Runtime Version" 下拉菜单中,您可以选择包含所需 Scala 和 Spark 版本的运行时版本: