@@ -0,0 +1,2767 @@
+import java.io.IOException;%0Aimport java.text.ParseException;%0Aimport java.text.SimpleDateFormat;%0Aimport java.util.Date;%0Aimport java.util.StringTokenizer;%0A%0Aimport org.apache.hadoop.conf.Configuration;%0Aimport org.apache.hadoop.fs.Path;%0Aimport org.apache.hadoop.io.IntWritable;%0Aimport org.apache.hadoop.io.Text;%0Aimport org.apache.hadoop.mapreduce.Job;%0Aimport org.apache.hadoop.mapreduce.Mapper;%0Aimport org.apache.hadoop.mapreduce.Reducer;%0Aimport org.apache.hadoop.mapreduce.lib.input.FileInputFormat;%0Aimport org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;%0A%0Apublic class NotSeenBirds %7B%0A%0A    public static class NotSeenBirdsMapper extends Mapper%3CObject, Text, Text, Text%3E%7B%0A%0A        private Text wingspan = new Text();%0A        private Text mapkey = new Text();%0A%0A        private Log log;%0A%0A        public void map(Object key, Text value, Context context) throws IOException, InterruptedException %7B%0A            StringTokenizer itr = new StringTokenizer(value.toString());%0A            while (itr.hasMoreTokens()) %7B%0A                log = new Log(itr.nextToken());%0A                mapkey.set(log.getBirdId());%0A                wingspan.set(log.getDate());%0A                context.write(mapkey, wingspan);%0A            %7D%0A        %7D%0A%0A    %7D%0A%0A%0A%0A    public static class NotSeenBirdsReducer extends Reducer%3CText,Text,Text,Text%3E %7B%0A        private Text result = new Text();%0A%0A        public void reduce(Text key, Iterable%3CText%3E values, Context context) throws IOException, InterruptedException %7B%0A            SimpleDateFormat formatter = new SimpleDateFormat(%22yyyy/MM/dd/%22);%0A            Date date = new Date(0);%0A            for (Text val : values) %7B%0A                Date dateval = new Date(0);%0A                try %7B%0A                    dateval = formatter.parse(val.toString());%0A                %7D catch (ParseException e) %7B%0A                    e.printStackTrace();%0A                %7D%0A                if (date.getTime() %3C dateval.getTime()) %7B%0A                    date = dateval;%0A                %7D%0A            %7D%0A            result.set(formatter.format(date));%0A            context.write(key, result);%0A        %7D%0A    %7D%0A%0A    public static void main(String%5B%5D args) throws Exception %7B%0A        Configuration conf = new Configuration();%0A        Job job = Job.getInstance(conf, %22NotSeenBirds%22);%0A        job.setJarByClass(NotSeenBirds.class);%0A        job.setMapperClass(NotSeenBirdsMapper.class);%0A        job.setCombinerClass(NotSeenBirdsReducer.class);%0A        job.setReducerClass(NotSeenBirdsReducer.class);%0A        job.setOutputKeyClass(Text.class);%0A        job.setOutputValueClass(IntWritable.class);%0A        FileInputFormat.addInputPath(job, new Path(args%5B0%5D));%0A        FileOutputFormat.setOutputPath(job, new Path(args%5B1%5D));%0A        System.exit(job.waitForCompletion(true) ? 0 : 1);%0A    %7D%0A%7D%0A

Add NotSeenBirds reducer