简体   繁体   English

异常:java.lang.Double 不能转换为 [D

[英]Exception:java.lang.Double cannot be cast to [D

I have logistic regression model and I want to calculating recall@25我有逻辑回归模型,我想计算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)}")
}

this exception appear出现这个异常

java.lang.Double cannot be cast to [D java.lang.Double 不能转换为 [D

How to solve it?如何解决?

RankingMetrics requires RDD(array, array) where as you are having RDD(double,double) which means you are passing the INVALID arguments. RankingMetrics 需要 RDD(array, array) ,因为你有 RDD(double,double) 这意味着你正在传递INVALID参数。

In General for Type conversion, map transformation used一般用于类型转换,使用映射转换

Assuming that predictionAndLabels.rdd type is RDD(double,double)假设 predictionAndLabels.rdd 类型为 RDD(double,double)

pairArrRDD = predictionAndLabels.rdd.map(x => (Array(x._1),Array(x._2))) //this is in scala pairArrRDD = predictionAndLabels.rdd.map(x => (Array(x._1),Array(x._2))) //这是scala

val matrix = new RankingMetrics( pairArrRDD ) val 矩阵 = 新排名指标( pairArrRDD

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何修复 Spark (Scala) 中的“java.lang.Integer cannot be cast to java.lang.Double”错误? - How to fix "java.lang.Integer cannot be cast to java.lang.Double" Error in Spark (Scala)? org.apache.spark.ml.linalg.DenseVector 不能转换为 java.lang.Double - org.apache.spark.ml.linalg.DenseVector cannot be cast to java.lang.Double 创建RDD [LabeledPoint]:java.lang.ClassCastException:java.lang.Long无法强制转换为java.lang.Double - Creation of RDD[LabeledPoint]: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Double scala.collection.mutable.ArrayBuffer无法转换为java.lang.Double(Spark) - scala.collection.mutable.ArrayBuffer cannot be cast to java.lang.Double (Spark) 尝试从RDD返回Map [(String,String),(Double,Double)]时无法将java.lang.String强制转换为java.lang.Double错误 - java.lang.String cannot be cast to java.lang.Double Error when trying to return Map[(String, String),(Double, Double)] from RDD ClassCastException:java.lang.Double 不能转换为 org。 apache.spark.mllib.linalg.Vector 使用 LabeledPoint 时 - ClassCastException: java.lang.Double cannot be cast to org. apache.spark.mllib.linalg.Vector While using LabeledPoint 为什么java.lang.Integer和java.lang.Double的最小上限被推断为非循环类型? - Why is the least upper bound of java.lang.Integer and java.lang.Double inferred as a acyclic type? 将Map [String,Double]转换为java.util.Map [String,java.lang.Double] - Converting Map[String, Double] to java.util.Map[String, java.lang.Double] 如何将 Scala 的 List[Double] 转换为 java.util.List[java.lang.Double]? - How to convert Scala's List[Double] to java.util.List[java.lang.Double]? 如何将java.util.List [java.lang.Double]转换为Scala的List [Double]? - How to convert java.util.List[java.lang.Double] to Scala's List[Double]?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM