Исключение: java .lang. Двойной нельзя привести к [D - PullRequest
0 голосов
/ 05 марта 2020

У меня есть логистика c регрессионная модель, и я хочу вычислить recall@25

val predictionAndLabels = predicted
.select("prediction", "label")
.rdd.map(x => (x(0).asInstanceOf[Array[Double]], x(1)
.asInstanceOf[Array[Double]]))
val matrix = new RankingMetrics(predictionAndLabels)
 Array(1, 25).foreach { k =>
  println(s"Recall at $k = ${matrix.RecallAt(k)}")
}

это исключение появляется

java .lang. Двойной не может быть приведен на [D

Как это решить?

1 Ответ

2 голосов
/ 05 марта 2020

RankingMetrics требует RDD (массив, массив), где, поскольку у вас есть RDD (double, double), это означает, что вы передаете аргументы INVALID .

В общем для преобразования типов, map использованное преобразование

Предполагается, что типpretionAndLabels.rdd имеет тип RDD (double, double)

pairArrRDD =gnation.AndLabels.rdd.map (x => (Array ( x._1), Array (x._2))) // это в scala

val matrix = new RankingMetrics ( pairArrRDD )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...