gpt4 book ai didi

java - 如何在 apache spark 中执行 Sort JavaPairRDD

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:39:24 25 4
gpt4 key购买 nike

我正在从日志文件中获取 IP 地址并对其进行计数,现在我想根据其计数值对 JavaPairRDD 进行排序。你可以引用下面的代码。

JavaPairRDD<String, Integer> counts = pairs.reduceByKey(new Function2<Integer, Integer, Integer>() {

@Override
public Integer call(Integer v1, Integer v2) throws Exception {
// TODO Auto-generated method stub
return v1 + v2;
}
});

上面的 JavaPairRDD 将返回 IP 计数,现在我想对其进行排序..例如输出将是这样的

(172.16.0.0,125)
(192.168.0.0,12)
(127.168.0.44,92)

第二个值是该特定 ip 的计数。

最佳答案

Spark 不支持基于值的排序。作为解决方法,您可以交换键和值对,然后根据键进行排序。

检查这个:https://issues.apache.org/jira/browse/SPARK-3655

使用此代码交换键和值:

JavaPairRDD<Integer, String> swapped = counts.mapToPair(new PairFunction<Tuple2<String, Integer>, Integer, String>() {
@Override
public Tuple2<Integer, String> call(Tuple2<String, Integer> item) throws Exception {
return item.swap();
}

});

关于java - 如何在 apache spark 中执行 Sort JavaPairRDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35909989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com