我想找到RDD三元组的最小值。这就是我处理此任务的方法(保存到文件已完成验证)。
evalsRDD.coalesce(1)
.map(e => "%.3f\t%d\t%.3f".format(e._1, e._2, e._3))
.saveAsTextFile("data/streaming/test")
val minRMSE = evalsRDD.min()(new Ordering[(Any, Any, Double)]() {
override def compare(x: (Any, Any, Double), y: (Any, Any, Double)): Double =
Ordering[Double].compare(x._3, y._3) })
它说方法比较具有不兼容的类型。如何解决这个问题?
答案 0 :(得分:1)
您的compare
方法必须返回Int
,而不是Double
,以覆盖Ordering
中定义的方法。
如果你改变它,它就可以了:
val minRMSE = evalsRDD.min()(new Ordering[(Any, Any, Double)]() {
override def compare(x: (Any, Any, Double), y: (Any, Any, Double)): Int =
Ordering[Double].compare(x._3, y._3)
})