gpt4 book ai didi

python - 获取 Spark RDD 中每个键的最大值

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:26 25 4
gpt4 key购买 nike

返回与 Spark RDD 中每个唯一键关联的最大行(值)的最佳方法是什么?

我正在使用 python,并且尝试了 Math max、通过键和聚合进行映射和减少。有没有有效的方法来做到这一点?可能是 UDF?

我有 RDD 格式:

[(v, 3),
(v, 1),
(v, 1),
(w, 7),
(w, 1),
(x, 3),
(y, 1),
(y, 1),
(y, 2),
(y, 3)]

我需要返回:

[(v, 3),
(w, 7),
(x, 3),
(y, 3)]

关系可以返回第一个值或随机值。

最佳答案

实际上你有一个PairRDD。最好的方法之一是使用reduceByKey:

(斯卡拉)

val grouped = rdd.reduceByKey(math.max(_, _))

(Python)

grouped = rdd.reduceByKey(max)

(Java 7)

JavaPairRDD<String, Integer> grouped = new JavaPairRDD(rdd).reduceByKey(
new Function2<Integer, Integer, Integer>() {
public Integer call(Integer v1, Integer v2) {
return Math.max(v1, v2);
}
});

(Java 8)

JavaPairRDD<String, Integer> grouped = new JavaPairRDD(rdd).reduceByKey(
(v1, v2) -> Math.max(v1, v2)
);

reduceByKey 的 API 文档:

关于python - 获取 Spark RDD 中每个键的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53328704/

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