我通过以下设置在Azure Databricks中使用Scala:
28.0 GB Memory, 8 Cores, 1.5 DBU
)14.0 GB Memory, 4 Cores, 0.75 DBU
)我有一个带有760k行和两列的Spark数据框:
Double
)SparseVector
的{84224
)我想在数据框上使用XGBoost
来训练回归模型:
val params = Map(
"objective" -> "reg:linear",
"max_depth" -> 6,
"eval_metric" -> "rmse"
)
var model = new XGBoostRegressor(params)
.setFeaturesCol("features")
.setLabelCol("label")
.setTreeMethod("approx")
.setNumRound(20)
.setNumEarlyStoppingRounds(3)
.setUseExternalMemory(true)
.setMaxDepth(6)
.setNumWorkers(10)
val trainedModel = model.fit(trainSample)
启动后,出现以下错误:
SIGSEGV(0xb)在pc = 0x00007f62a9d33e0e,pid = 3954, tid = 0x00007f62c88db700
到目前为止,我已经尝试过:
当我将numWorkers
设置为1
时,训练开始了,但显然运行非常缓慢,我相信这不是应该使用的方式。
此处https://xgboost.readthedocs.io/en/latest/tutorials/external_memory.html和此处https://docs.databricks.com/spark/latest/mllib/third-party-libraries.html#xgboost的文档对我的情况完全没有帮助。
我的问题是: