package com.mongodb.hadoop.examples.sensors; import com.mongodb.hadoop.io.BSONWritable; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.JobConf; import org.apache.hadoop.mapred.OutputCollector; import org.apache.hadoop.mapred.Reporter; import org.apache.hadoop.mapreduce.Mapper; import org.bson.BSONObject; import java.io.IOException; public class LogMapper extends Mapper<Object, BSONObject, Text, IntWritable> implements org.apache.hadoop.mapred.Mapper<Object, BSONWritable, Text, IntWritable> { private final Text keyText; private final IntWritable valueInt; public LogMapper() { super(); keyText = new Text(); valueInt = new IntWritable(1); } @Override public void map(final Object key, final BSONObject val, final Context context) throws IOException, InterruptedException { keyText.set(val.get("d_id").toString()); context.write(keyText, valueInt); } @Override public void map(final Object key, final BSONWritable value, final OutputCollector<Text, IntWritable> output, final Reporter reporter) throws IOException { keyText.set(value.getDoc().get("d_id").toString()); output.collect(keyText, valueInt); } @Override public void close() throws IOException { } @Override public void configure(final JobConf job) { } }