设计思路:
map阶段:这里需要汇总所有员工的工资计算平均工资,所以用了一个统一的名称作为key以便把所有员工都汇总到起来,然后将员工姓名和工资用逗号分隔拼接为字符串作为value输出;
reduce阶段:所有员工都在汇总到一起,遍历传入的value,对其数据进行分拆获得员工姓名和工资,并将他以姓名作为key,工资作为value加入到一个HashMap对象中。遍历value的同时叠加所有人员的工资和人员数量求出公司的平均工资。最后遍历刚才定义的员工HashMap对象,取出员工工资和平均工资作比较。
package week06;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;