我是新手,可以使用IKAI源码下的mapper来学习。
假设映射器正在迭代数据存储区实体(Say PowerHouse,它具有currentConsumption字段,用于维护每个房屋消耗的电流量)
我需要mapper工具遍历整个实体并获得currentConsumption字段的总和。 根据IKAI演示 我能够遍历PowerHouseTable的每一行,但不知道如何总结currentConsumption。 非常感谢任何帮助。
答案 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)