From 6c86222c20be4f416706f16674ef3954836a7254 Mon Sep 17 00:00:00 2001 From: kiran0541 Date: Wed, 21 Oct 2015 16:32:16 +0530 Subject: [PATCH] Create Find the number of gold medals each country won --- ...the number of gold medals each country won | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Find the number of gold medals each country won diff --git a/Find the number of gold medals each country won b/Find the number of gold medals each country won new file mode 100644 index 0000000..19403cc --- /dev/null +++ b/Find the number of gold medals each country won @@ -0,0 +1,81 @@ + +//Find the number of gold medals each country won + +import java.io.IOException; + +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.conf.*; +import org.apache.hadoop.io.*; +import org.apache.hadoop.mapreduce.*; +import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; +import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; +import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; +import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; + + public class Country_gold { + + public static class Map extends Mapper { + + private Text country = new Text(); + private IntWritable gold = new IntWritable(); + public void map(LongWritable key, Text value, Context context ) +throws IOException, InterruptedException { + String line = value.toString(); + String str[]=line.split("\t"); + + country.set(str[2]); + if(str[6].matches("\\d+")){ + int i=Integer.parseInt(str[6]); + gold.set(i); + } + + + context.write(country, gold); + + + } + } + + public static class Reduce extends Reducer { + + public void reduce(Text key, Iterable values, +Context context) + throws IOException, InterruptedException { + int sum = 0; + for (IntWritable val : values) { + + sum += val.get(); + } + context.write(key, new IntWritable(sum)); + } + } + + public static void main(String[] args) throws Exception { + Configuration conf = new Configuration(); + + @SuppressWarnings("deprecation") + Job job = new Job(conf, "goldmedalcount"); + job.setJarByClass(Country_gold.class); + + job.setMapOutputKeyClass(Text.class); + job.setMapOutputValueClass(IntWritable.class); + // job.setNumReduceTasks(0); + job.setOutputKeyClass(Text.class); + job.setOutputValueClass(IntWritable.class); + + job.setMapperClass(Map.class); + job.setReducerClass(Reduce.class); + + job.setInputFormatClass(TextInputFormat.class); + job.setOutputFormatClass(TextOutputFormat.class); + + FileInputFormat.addInputPath(job, new Path(args[0])); + FileOutputFormat.setOutputPath(job, new Path(args[1])); + Path out=new Path(args[1]); + out.getFileSystem(conf).delete(out); + job.waitForCompletion(true); + } + + }