<hadoop>在hadoop集群的map和reduce函数中传递自定义对象
来源:互联网 发布:淘宝主图促销水印 编辑:程序博客网 时间:2024/05/16 00:48
由于map和reduce中只能传输KEY,VALUE对
@Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { //将Text内容转化成String类型 String line = value.toString(); //分词 String[] words = line.split(" "); //return <word,1> for (String word:words) { context.write(new Text(word),new IntWritable(1)); } }
@Override protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int result = 0; for(IntWritable value:values) { result += value.get(); } //输出最终KV对 context.write(key,new IntWritable(result)); }
当需要传输复杂数据类型的时候,选择传输自定义对象,但由于hadoop数据传输需求,数据必须要有合适的序列化方法。即自定义对象需要实现hadoop中的Writable接口
import org.apache.hadoop.io.Writable;import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;/** * Created by hadoop on 17-2-18. * 自定义数据类型需要在hadoop中传输需要实现Writable接口 */public class MyData implements Writable{ private String a; private int b; //为了能够反序列化必须要定义一个无参数的构造函数 public MyData() { } public MyData(String a, int b) { this.a = a; this.b = b; } public String getA() { return a; } public void setA(String a) { this.a = a; } public int getB() { return b; } public void setB(int b) { this.b = b; } /* * 序列化方法 */ @Override public void write(DataOutput dataOutput) throws IOException { dataOutput.writeChars(a); dataOutput.writeInt(b); } /* * 反序列化方法 */ @Override public void readFields(DataInput dataInput) throws IOException { this.a = dataInput.readLine(); this.b = dataInput.readInt(); }}
0 0
- <hadoop>在hadoop集群的map和reduce函数中传递自定义对象
- Hadoop中 使用自定义的Writable,作为value在map和reduce传递参数。
- hadoop中在map和reduce方法中调试代码
- Hadoop---在HDFS集群基础上搭建Map/Reduce集群
- 如何在Hadoop中控制Map&Reduce任务的数量
- hadoop中map和reduce的数量设置问…
- hadoop中map和reduce的数量设置问题
- hadoop中map和reduce的数量设置问题
- 如何控制hadoop中map和reduce任务的数量
- hadoop中map和reduce的数量设置
- hadoop中map和reduce的数量设置问题
- hadoop中map和reduce的数量设置问题
- hadoop中map和reduce的数量设置
- hadoop中map和reduce的数量设置问题
- hadoop中map和reduce的数量设置问题
- Hadoop中map和reduce个数的设置
- hadoop中map和reduce的数量设置问题
- hadoop中map和reduce的数量设置问题
- struts2.0的常用标签
- 整数划分问题(递归法)
- 机器学习:机器学习中的损失函数
- 虚拟黑车Java版
- Java类和对象
- <hadoop>在hadoop集群的map和reduce函数中传递自定义对象
- winform中的定时器 System.Timers.Timer用法
- Java中Comparable和Comparator区别小结
- uva 6952 Cent Savings dp
- 小词汇量的语音识别
- 黑白棋游戏
- 快速排序算法
- HDU - 2222 AC自动机模板题
- 优秀的程序员凡事先上谷歌搜索,哈哈