Hadoop实践小贴士

1. 在reducer中,每一输入是一个<key,values>对,例如Text key, Iterable<Text> values. 其中的values只能遍历一遍,这在程序设计时要特别注意。

for(Text value : values)
{
    doSth();  
}

for(Text value : values)
{
    doSthElse();  
}

上面的代码中,doSth可以执行,doSthElse是不能执行的。Iterable接口只实现了三种方法:hasNext, next以及remove. 因此,当第一个for循环结束之后,values.iterator()已经到了最后一个元素。因此第二个循环为空,不执行doSthElse.

posted on 2012-12-11 11:06  静静的三娃  阅读(132)  评论(0编辑  收藏  举报

导航