gpt4 book ai didi

java - 如何根据Key从PairRDD获取新的RDD

转载 作者:行者123 更新时间:2023-11-30 08:14:35 26 4
gpt4 key购买 nike

在我的 Spark 应用程序中,我使用了一个 JavaPairRDD<Integer, List<Tuple3<String, String, String>>>数据量大。

我的要求是我需要一些其他的 RDD JavaRDD<Tuple3<String, String, String>>来自基于键的 Large PairRDD。

最佳答案

我不知道 Java API,但在 Scala 中(在 spark-shell 中)可以这样做:

def rddByKey[K: ClassTag, V: ClassTag](rdd: RDD[(K, Seq[V])]) = {
rdd.keys.distinct.collect.map {
key => key -> rdd.filter(_._1 == key).values.flatMap(identity)
}
}

您必须为每个键过滤,并使用flatMap 展平List

我不得不提一下,这不是一个有用的操作。如果您能够构建原始 RDD,则意味着每个 List 都足够小以适合内存。所以我不明白你为什么要把它们变成 RDD。

关于java - 如何根据Key从PairRDD获取新的RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29410573/

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