目录
1、总体思路
(1)首先将要分析的csv文件对象price和id,定义成String类型,因为MapReduce的输入和输出都是k,v键值对的形式。
@Override
protected void reduce(Text key, Iterable<CsvBean> values, Context context) throws IOException, InterruptedException {
for (CsvBean value : values) {
context.write(key,value);
}
}
(2)所以我们这里将price封装成一个对象,将price的对象属性按照csv文件进行设置。
//4 封装到对象
outV.setId(id);
outV.setAge(price);
outK.set(price);
(3)封装了对象后,我们需要对定义输入和输出的类型,这里用的是重写序列化方法以及重写反序列化方法。
重写序列化方法:writeUTF方法
@Override
public void write(DataOutput dataOutput) throws IOException {
dataOutput.writeUTF(id);
dataOutput.writeUTF(price);
}
重写反序列化方法:readUTF方法
@Override
public void readFields(DataInput dataInput) throws IOException {