实现WritableComparable接口的类大多数(在io包中的都可以)可以作为MapReduce中Mapper或Reducer的key-value数据类型。在hadoop框架中自带实现WritableComparable接口的类(FlowBean是自定义的)有:
可以看出,自带的类实现了对整形,浮点型,布尔型及String(Text类)的封装,都是比较简单的数据类型,在实际应用中通常需要自定义数据类型。在写自定义数据类之前首先分析一下自带的LongWritable数据类型,如下:
public class LongWritable implements WritableComparable<LongWritable> {
private long value;
public LongWritable() {}
public LongWritable(long value) { set(value); }
/** Set the value of this LongWritable. */
public void set(long value) { this.value = value; }
/** Return the value of this LongWritable. */
public long get() { return value; }
@Override
public void readFields(DataInput in) throws IOException {
value = in.readLong();

本文探讨了如何在MapReduce中使用自定义数据类型,特别是以FlowBean为例,展示了如何实现WritableComparable接口以适应Hadoop框架。内容包括分析自带的LongWritable数据类型,并说明自定义数据类型应包含的方法,适用于处理复杂的数据统计场景,如手机流量统计。
最低0.47元/天 解锁文章
445

被折叠的 条评论
为什么被折叠?



