Когда я выполняю свой код локально, с тем же набором данных, хранящимся в локальной файловой системе, он запускается без проблем. но когда я запускаю его на своем кластере hadoop, он никогда не заканчивается и выдает мне эту ошибку бесконечно:
ERROR AsyncEventQueue: Listener EventLoggingListener threw an exception
com.fasterxml.jackson.databind.JsonMappingException: Failed to find a default value for thresholds (through reference chain: org.apache.spark.ml.CreateModelEvent["model"]->org.apache.spark.ml.PipelineModel["stages"]->org.apache.spark.ml.classification.RandomForestClassificationModel["thresholds"])
Я не могу найти решение.
Заранее благодарю за помощь.
Вот часть моего кода:
// Random Forest
val randomForest = new RandomForestClassifier()
.setLabelCol(idxdLabelColName)
.setFeaturesCol(featuresColName)
// Pipeline
val pipeline = new Pipeline().setStages(
(stringIndexers :+ labelIndexer :+ assembler :+ randomForest :+ labelConverter).toArray)
// Cross validation parameters
val paramGrid = new ParamGridBuilder()
.addGrid(randomForest.maxBins, Array(25,28,31))
.addGrid(randomForest.maxDepth, Array(4,6,8))
.addGrid(randomForest.impurity, Array("entropy","gini"))
.build()
// evaluator
val evaluator = new BinaryClassificationEvaluator()
.setLabelCol(idxdLabelColName)
// Cross validator
val cv = new CrossValidator()
.setEstimator(pipeline)
.setEvaluator(evaluator)
.setEstimatorParamMaps(paramGrid)
.setNumFolds(3)
// Train model on train set
val crossValidatorModel = cv.fit(allTrainingData)
// Prediction on test set
val predictions = crossValidatorModel.transform(allTestData)
predictions.show()