实现顶级scala apache spark



我试图在apache spark中实现scala中的top-k。我知道spark有一个顶级动作。但是,top()使用reduce()。相反,我想使用trereduce()。我的主要问题是,我不能使用这2行代码,这是在我的Spark应用程序中的top()操作中使用的。

val queue = new BoundedPriorityQueue[T](num)(ord.reverse)
queue ++= util.collection.Utils.takeOrdered(items, num)(ord)

这些都是私有的。我知道我可以在Scala中使用PriorityQueue而不是BoundedPriorityQueue。在Scala中有takeOrdered的替代方案吗?

因为(根据评论),这是一个研究项目,你可以添加你自己的MyBoundedPriorityQueue扩展boundedpriorityqueue,并在你自己的代码中暴露org.apache.spark中的API。这在不同版本的Spark之间不太可能起作用,但如果只是为了研究,这应该是可行的。祝你好运,希望你能把你的发现告诉我们:)

最新更新