Scala 异常:java.lang.Double不能强制转换为[D]
我有逻辑回归模型,我想计算recall@25Scala 异常:java.lang.Double不能强制转换为[D],scala,apache-spark,Scala,Apache Spark,我有逻辑回归模型,我想计算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).forea
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.Double强制转换为[D]
如何解决这个问题?RankingMetrics需要RDD(数组,数组),当您使用RDD(double,double)时,这意味着您正在传递无效的参数 对于类型转换,通常使用映射转换 假设predictionAndLabels.rdd类型为rdd(double,double) pairarrdd=predictionAndLabels.rdd.map(x=>(数组(x.\u 1),数组(x.\u 2))//这是在scala中
val matrix=new RankingMetrics(pairArrRDD)非常感谢,但是value recallAt不是org.apache.spark.mllib.evaluation.RankingMetrics[Double]的成员。