如何总结mapper迭代的值

时间:2014-05-13 16:40:31

标签: google-app-engine mapreduce

我是新手,可以使用IKAI源码下的mapper来学习。

假设映射器正在迭代数据存储区实体(Say PowerHouse,它具有currentConsumption字段,用于维护每个房屋消耗的电流量)

我需要mapper工具遍历整个实体并获得currentConsumption字段的总和。 根据IKAI演示 我能够遍历PowerHouseTable的每一行,但不知道如何总结currentConsumption。 非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

是的,您需要一个Reducer步骤来聚合currentConsumption。

通常情况下,这很容易,只是尝试实现一个Reduce函数,该函数与您已经拥有的Map函数有关,以便聚合结果。

尝试查看WordCount示例,它与您正在寻找的原理几乎相同。 http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html#Example%3A+WordCount+v2.0

因此,在单词计数示例中,在map函数中,它逐字逐句地分配给它1.这意味着,映射结果是(键是单词,值为1)的列表。在你的例子中,它将是关键的房子,价值是该房子的当前消费。

在reducer中,在单词示例中,mapper的输出将是reducer的输入。 reducer对1s的相同单词求和,得到该单词的总和。结果将是一个列表(键是单词,值是总和)。你的情况也是如此,因此你将获得房子的关键,价值将是当前的消费。

答案 1 :(得分:0)

Sum需要一个reducer步骤,因为它是一个聚合运算符。

答案 2 :(得分:0)