@Override public void map(LongWritable key, Text value, TupleMRContext context, Collector collector) throws IOException, InterruptedException { user.set("name", "Pere"); user.set("money", 100); user.set("my_country", "ES"); collector.write(user); user.set("name", "Iván"); user.set("my_country", "ES"); user.set("money", 50); collector.write(user); user.set("my_country", "FR"); user.set("money", 150); user.set("name", "Eric"); collector.write(user); country.set("country", "ES"); country.set("averageSalary", 1000); collector.write(country); country.set("country", "FR"); country.set("averageSalary", 1500); collector.write(country); }
@Override public void reduce( ITuple group, Iterable<ITuple> tuples, TupleMRContext context, Collector collector) throws IOException, InterruptedException, TupleMRException { int count = 0; ITuple outputTuple = null; for (ITuple tuple : tuples) { outputTuple = tuple; count += (Integer) tuple.get(1); } outputTuple.set(1, count); collector.write(outputTuple, NullWritable.get()); }
@Override public void map(LongWritable key, Text value, TupleMRContext context, Collector collector) throws IOException, InterruptedException { if (tuple == null) { tuple = new Tuple(context.getTupleMRConfig().getIntermediateSchema(0)); } StringTokenizer itr = new StringTokenizer(value.toString()); tuple.set(1, 1); while (itr.hasMoreTokens()) { tuple.set(0, itr.nextToken()); collector.write(tuple); } }
@Override public void reduce( ITuple group, Iterable<ITuple> tuples, TupleMRContext context, Collector collector) throws IOException, InterruptedException, TupleMRException { if (outputCount == null) { outputCount = new IntWritable(); } int count = 0; for (ITuple tuple : tuples) { count += (Integer) tuple.get(1); } outputCount.set(count); collector.write((Text) group.get(0), outputCount); }