gpt4 book ai didi

java - Spark : keyBy() vs mapToPair()

转载 作者:行者123 更新时间:2023-11-29 04:38:15 25 4
gpt4 key购买 nike

在 Java Spark 中,我可以使用 keyBy() 或 mapToPair() 为 JavaRDD 创建一些键。使用 keyBy() 使我的意图更加清晰,并使用更少代码的参数函数(该函数返回一个键而不是一个元组)。然而,使用 keyBy() 而不是 mapToPair() 在性能上有什么改进吗?谢谢

最佳答案

可以在源码中浏览差异:

def mapToPair[K2, V2](f: PairFunction[T, K2, V2]): JavaPairRDD[K2, V2] = {
def cm: ClassTag[(K2, V2)] = implicitly[ClassTag[(K2, V2)]]
new JavaPairRDD(rdd.map[(K2, V2)](f)(cm))(fakeClassTag[K2], fakeClassTag[V2])
}

和:

def keyBy[U](f: JFunction[T, U]): JavaPairRDD[U, T] = {
implicit val ctag: ClassTag[U] = fakeClassTag
JavaPairRDD.fromRDD(rdd.keyBy(f))
}

调用:

def keyBy[K](f: T => K): RDD[(K, T)] = withScope {
val cleanedF = sc.clean(f)
map(x => (cleanedF(x), x))
}

它们基本上都调用map 并生成一个新的RDD。我认为两者之间没有显着差异。

关于java - Spark : keyBy() vs mapToPair(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40346640/

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