First Mapper从另一个块(文件)生成输出,生成的第一部分文件保存来自块2的数据

时间:2015-11-20 09:54:48

标签: hadoop mapreduce

First Mapper从另一个块(文件)生成输出,生成的第一部分文件保存来自块2的数据。

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class MainMaxTemp {
    public static void main(String[] args) throws Exception {
        if (args.length != 2) {
            System.err.println("Usage: MaxTemperature <input path> <output path>");
            System.exit(-1);
        }
        Job job = new Job();
        job.setNumReduceTasks(2);
        job.setJarByClass(MainMaxTemp.class);
        job.setJobName("Max temperature");
        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));
        job.setMapperClass(WeatherData.class);
        // job.setReducerClass(MaxTemperatureReducer.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}


import java.io.IOException;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class WeatherData extends Mapper<LongWritable, Text, Text, IntWritable> {
    private static final int MISSING = 9999;

    @Override
    public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        String line = value.toString();
        String words[]=line.split(" ");
        String year = words[0];
        int airTemperature;

        airTemperature=Integer.parseInt(words[1]);
        context.write(new Text(year), new IntWritable(airTemperature));

    }
}

输入文件1 1901年23 1902年67 1902年89 1901年101 1889年至1990年 1700 189 1901年 - 9月

输入文件2 2901 23 2902 67 2902 89 2901 101 2889 -90 2700 189 2901 -9

部分档案1 1700 189 1889年至1990年 1902年89 1902年67 2901 -9 2901 101 2901 23

部分档案2 1901年至199年 1901年101 1901年23 2700 189 2889 -90 2902 89 2902 67

0 个答案:

没有答案