Apache spark Apache Spark,找到一个键值对的最大值吗?

Apache spark Apache Spark,找到一个键值对的最大值吗?,apache-spark,Apache Spark,对于给定的RDD,如何求a(k,v)的最大值 我尝试了以下方法: 映射(lambda(k,v):(k,v)).takeorded(1,key=lambda x:-len(x[1])) 有更好的选择吗?javarddinput=sc.textFile(“README.md”); JavaRDD<String> input = sc.textFile("README.md"); JavaRDD<Tuple2< Integer,String>> tupleRDD

对于给定的RDD,如何求a(k,v)的最大值

我尝试了以下方法: 映射(lambda(k,v):(k,v)).takeorded(1,key=lambda x:-len(x[1]))

有更好的选择吗?

javarddinput=sc.textFile(“README.md”);
 JavaRDD<String> input = sc.textFile("README.md");
 JavaRDD<Tuple2< Integer,String>> tupleRDD = input.map(new Function<String, Tuple2<Integer,String>>() {

        @Override
        public Tuple2<Integer, String> call(String v1) throws Exception {
            return new Tuple2< Integer,String>(v1.split(" ").length, v1);
        }
    });
    JavaRDD<Tuple2<Integer,String>> tupleRDD1=  tupleRDD.sortBy(new Function<Tuple2<Integer,String>, Integer>() {

        @Override
        public Integer call(Tuple2<Integer, String> v1) throws Exception {
            // TODO Auto-generated method stub
            return v1._1;
        }
    }, false, 1);
    System.out.println(tupleRDD1.first());
JavaRDD>tupleRDD=input.map(新函数(){ @凌驾 公共元组2调用(字符串v1)引发异常{ 返回新的Tuple2(v1.split(“”).length,v1); } }); JavaRDD tuplerd1=tupleRDD.sortBy(新函数(){ @凌驾 公共整数调用(Tuple2 v1)引发异常{ //TODO自动生成的方法存根 返回v1._1; } },假,1); System.out.println(tuplerd1.first());

在这里,我读取了一个文件,并将其在空间上拆分,然后将其存储在一个地图中,其中单词数作为键,行本身作为值。然后使用map的第一个值(整数)按降序对其进行排序。通过这种方式,rdd的第一个元素的长度最高。

您是否尝试过在rdd上使用
max
方法?Justin的解决方案很好,而且尽可能短。作为一个更通用的替代方法,您可以只
r.reduce(Math.max)
,也就是说,您只需将任意一对值重复替换为它们中的最大值,直到只剩下一个。我没有。是的,这是更好的选择。