实现top-k scala apache spark

时间:2015-06-09 06:13:04

标签: scala apache-spark

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

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

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

1 个答案:

答案 0 :(得分:0)

由于(根据评论),这是一个研究项目,您可以添加自己的MyBoundedPriorityQueue,它扩展BoundedPriorirtyQueue并在您自己的代码中公开org.apache.spark中的API。这不太可能在Spark的版本之间起作用,但如果仅仅用于研究,那应该可以解决问题。祝你好运,我希望你用你的发现更新我们:)