如何有效地找到 top-k 元素



我有一个存储文档tfidf值的大序列文件。每行代表行,列是每个项的 tfidfs 值(行是稀疏向量)。我想使用 Hadoop 为每个文档选择前 k 个单词。天真的解决方案是遍历映射器中每一行的所有列并选择top-k,但随着文件变得越来越大,我认为这不是一个好的解决方案。在Hadoop中,有没有更好的方法呢?

 1. In every map calculate TopK (this is local top K for each map)
 2. Spawn a signle reduce , now top K from all mappers will flow to this reducer and hence global Top K will be evaluated. 

将问题视为

 1. You have been given the results of X number of horse races. 
 2. You need to find Top N fastest horse. 

相关内容

  • 没有找到相关文章

最新更新