如何设计Mapreduce的键值对来查找集合中的最大值?

时间:2017-06-21 16:36:10

标签: java hadoop mapreduce

我是MapReduce程序员的初学者。你能帮我设计一下以下问题的键值对吗?

问题陈述 - 找到最大值并将其与密钥一起打印

输入:

   Key       Value
   ABC       10
   TCA       13
   RTY       23
   FTY       45

左侧栏中的键将是唯一的。不允许重复。

输出:

   FTY       45

由于45是所有值中最高的,因此必须与键一起打印。

你能帮我设计map()和reduce()函数吗?这两个函数的键值对是什么?

1 个答案:

答案 0 :(得分:1)

在mapper中,记住最大的数字

class Mapper {
   V maxV;
   K maxK;

   map(K, V, context) {
      if (V > maxV) { maxV = V; maxK = K; }
   }

   cleanup(context) {
      context.store(maxK, maxV)
   }
}

在减速机中做同样的事情。将作业配置为只有1个reducer。