package com.telenav.logshed.collector.muxdemux;
import java.io.IOException;
import org.apache.avro.generic.GenericData;
import org.apache.avro.mapred.AvroCollector;
import org.apache.avro.mapred.AvroMapper;
import org.apache.avro.mapred.Pair;
import org.apache.hadoop.mapred.Reporter;
import com.telenav.logshed.collector.utils.LogshedCollectorUtils;
public class LogshedMapper extends
AvroMapper<GenericData.Record, Pair<LogKeyWritable, GenericData.Record>>
{
@Override
public void map(GenericData.Record datum,
AvroCollector<Pair<LogKeyWritable, GenericData.Record>> collector, Reporter reporter)
throws IOException
{
long tstamp = ((Long) datum.get("timestamp")).longValue();
String keyPath = LogshedCollectorUtils.getLogshedKeyHour(tstamp,
((String) datum.get("appid")));
LogKeyWritable key = new LogKeyWritable(keyPath, tstamp);
Pair<LogKeyWritable, GenericData.Record> pair = new Pair<LogKeyWritable, GenericData.Record>(
key, datum);
collector.collect(pair);
}
}