数据及需求
- 上面自己随机生成的一些数据,第一个是地点(只要北京、南京和上海三个),第二个是double类型的数据。要求将这个数据按照类型求和,并且分别输出到不同的文件里面,文件名以地点名命名
代码实现
Mapper阶段
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;
public class MapTest extends Mapper<LongWritable, Text, Text, DoubleWritable> {
Text k = new Text();
DoubleWritable v = new DoubleWritable();
@Override
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String[] datas = value.toString().split("\t");
k.set(datas[0]);
v.set(Double.parseDouble(datas[1]));
context.write(k, v);
}
}
Reduce阶段
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import java.io.IOException;
public class RedTest extends Reducer<Text, DoubleWritable, Text, DoubleWritable> {
DoubleWritable v = new DoubleWritable(