2016-04-27 8 views
1

RDDトリプル以上の最小値を探したいですか?これは私がこのタスクにアプローチする方法です(ファイルへの保存は検証のために行われます)。トリプル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

をどのようなタイプ 'evalsRDD'のですか? –

+0

@Tzach Zohar:それは 'RDD [(Any、Any、Double)]'タイプです。 – Klue

答えて

1

のメソッドは、Orderingで定義されているメソッドをオーバーライドするには、Doubleではなく、Intを返します。

あなたはそれがそうするために行う変更すると、それが動作:

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) 
}) 
関連する問題