package com.mongodb.hadoop.examples.sensors;
import com.mongodb.hadoop.io.BSONWritable;
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 DeviceMapper extends Mapper<Object, BSONObject, Text, Text>
implements org.apache.hadoop.mapred.Mapper<Object, BSONWritable, Text, Text> {
private final Text keyText;
private final Text valueText;
public DeviceMapper() {
super();
keyText = new Text();
valueText = new Text();
}
@Override
public void map(final Object key, final BSONObject val, final Context context) throws IOException, InterruptedException {
String keyOut = (String) val.get("owner") + " " + (String) val.get("type");
keyText.set(keyOut);
valueText.set(val.get("_id").toString());
context.write(keyText, valueText);
}
@Override
public void map(final Object key, final BSONWritable value, final OutputCollector<Text, Text> output,
final Reporter reporter) throws IOException {
BSONObject val = value.getDoc();
String keyOut = (String) val.get("owner") + " " + (String) val.get("type");
keyText.set(keyOut);
valueText.set(val.get("_id").toString());
output.collect(keyText, valueText);
}
@Override
public void close() throws IOException {
}
@Override
public void configure(final JobConf job) {
}
}