什么是Mapreduce等同于Spark中的top()函数?

时间:2018-11-21 04:32:19

标签: apache-spark mapreduce

我试图在Spark中找到与top()take()函数等效的解决方案,以实现Mapreduce。我想提取前k个值,而不保存整个键值对。

1 个答案:

答案 0 :(得分:0)

没有直接的等效项。如果您需要在没有Spark的情况下做类似的事情,我通常会使用Pig

它至少需要两个map reduce阶段。一个处理数据,然后另一个收集您实际想要的数据

在映射器中,您将null设置为可写(或一些单值键),然后发出所有值,并将它们强制为单个化简器。

在化简器中,您将要排序或发出的所有值收集到有限大小的集合中。我建议使用TreeMap或Binary Heap,因为它们会自动排序。然后,为K个值循环遍历该集合的大小