hadoop 自定义TextPair和使用原理

Posted 一字千金

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop 自定义TextPair和使用原理相关的知识,希望对你有一定的参考价值。

1.hadoop TextPair组合键定义

 

package Temperature;


import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.WritableComparable;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

public class TextPair implements WritableComparable<TextPair> {
    private Text first;
    private Text second;
    public TextPair() {
        set(new Text(),new Text());//基本类型int,long等可以不用初始化,但是对象类型变量一定要new,因为反序列化是要读取数据到first和second,会出现空指针引用的问题。
    }
    public TextPair(String first, String second) {
        set(new Text(first),new Text(second));
    }
    public TextPair(Text first, Text second) {
        set(first, second);
    }
    public void set(Text first, Text second) {
        this.first = first;
        this.second = second;
    }
    public Text getFirst() {
        return first;
    }
    public Text getSecond() {
        return second;
    }
    @Override
    public void write(DataOutput out)throws IOException {
        first.write(out);
        second.write(out);
    }
    @Override
    public void readFields(DataInput in)throws IOException {
        first.readFields(in);
        second.readFields(in);
    }
    @Override
    public int hashCode() {
        return first.hashCode() *163+ second.hashCode();
    }
    @Override
    public boolean equals(Object o) {
        if(o instanceof TextPair) {
            TextPair tp = (TextPair) o;
            return first.equals(tp.first) && second.equals(tp.second);
        }
        return false;
    }
    @Override
    public String toString() {
        return first +"\\t"+ second;
    }

    public int compareTo(TextPair tp) {
        int cmp = first.compareTo(tp.first);
        if(cmp !=0) {
            return cmp;
        }
        return second.compareTo(tp.second);
    }
}

具体使用实例见我的下一篇博客

https://www.cnblogs.com/bclshuai/p/12319490.html

 

自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

https://www.cnblogs.com/bclshuai/p/11380657.html

以上是关于hadoop 自定义TextPair和使用原理的主要内容,如果未能解决你的问题,请参考以下文章

如何通过Java程序提交yarn的MapReduce计算任务

一起学Hadoop——使用自定义Partition实现hadoop部分排序

hadoop 多文件夹输入,map到reduce怎样排序

Hadoop学习之路MapReduce自定义分区实现

大数据-Hadoop生态(20)-MapReduce框架原理-OutputFormat

大数据之Hadoop(MapReduce):自定义InputFormat