如何在JavaPairRDD

时间:2016-02-13 21:53:06

标签: java apache-spark

所以,我试图在JavaPairRDD中使用max,但无法使其正常工作。

JavaPairRDD<Integer, String> someRdd = (initialisation)

String maxValue = someRdd.max()  //not working

我的代码:http://ideone.com/0YXCJw

2 个答案:

答案 0 :(得分:5)

实施描述所需排序的比较器:

import scala.Tuple2;
import java.io.Serializable;

class DummyComparator implements 
      Comparator<Tuple2<Integer, String>>, Serializable {
   public int compare(Tuple2<Integer, String> x, Tuple2<Integer, String> y) {
        return -1;
    }
}

将其传递给max方法:

someRdd.max(new DummyComparator());

答案 1 :(得分:2)

这就是我用的。

class DummyComparator implements Serializable,  
     Comparator<Tuple2<Integer, String>> {
   @Override
   public int compare(Tuple2<Integer, String> o1, Tuple2<Integer, String> o2) {
         return Integer.compare(o1._1(), o2._1());
   }
}