hadoop-mapreduce-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brock Noland <br...@cloudera.com>
Subject Re: Text Iterable modifying other variable
Date Thu, 15 Mar 2012 00:30:55 GMT
Writable's are reused.  You need to deep copy the "value" into "lastValue".

On Wed, Mar 14, 2012 at 6:49 PM, Steven Willis <swillis@compete.com> wrote:
> I seem to have made a few typos in the code. This is how it should read:
>
> /*****************/
> public class MyReducer extends Reducer<Text, Text, Text, Text> {
>    @Override
>    public void reduce(Text key, Iterable<Text> values, Reducer<Text, Text,
Text, Text>.Context context) throws IOException, InterruptedException {
>        Text value = new Text();
>        Text lastValue = new Text();
>        Iterator<Text> valuesIterator = values.iterator();
>
>        while(valuesIterator.hasNext()) {
>            value = valuesIterator.next();
>            if(!value.equals(lastValue)){
>                context.write(key, value);
>                lastValue = value;
>            }
>        }
>    }
> }
> /*****************/
>
> My description of the problem stands.
>
> -Steven Willis



-- 
Apache MRUnit - Unit testing MapReduce - http://incubator.apache.org/mrunit/

Mime
View raw message