gpt4 book ai didi

apache-spark - Apache Spark 如何实现它的 topK() API?

转载 作者:行者123 更新时间:2023-12-04 23:44:33 24 4
gpt4 key购买 nike

在 Apache Spark 中有一个 RDD.top() API ,它可以从 RDD 返回前 k 个元素。我想知道这个操作是如何实现的。它是否首先对 RDD 进行排序然后返回前 k 个值?或者它是否使用其他一些更有效的实现?

最佳答案

不,它不会对整个 RDD 进行排序,该操作太昂贵了。

它宁愿使用 为每个分区分别选择 TOP N 个元素。优先队列 .然后这些队列在reduce操作中合并在一起。这意味着整个 RDD 中只有一小部分会在网络中进行混洗。

RDD.scala 更多细节。

示例 :

3个输入分区RDD.top(2)

[3, 5, 7, 10], [8, 6, 4, 12], [9, 1, 2, 11]
|| || ||
[10, 7] [12, 8] [11, 9]
================== reduce ==================
[12, 11]

关于apache-spark - Apache Spark 如何实现它的 topK() API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745259/

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