Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 异常:java.lang.Double不能强制转换为[D]_Scala_Apache Spark - Fatal编程技术网

Scala 异常:java.lang.Double不能强制转换为[D]

Scala 异常: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

我有逻辑回归模型,我想计算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.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]的成员。