您现在的位置: 爱51代码网 >> 范文 >> 文章正文
设计mapreduce计算所有酒店1公里范围内的地标
protected Object clone() throws CloneNotSupportedException {
        // TODO Auto-generated method stub
        return super.clone();
    }
 
    @Override
    public void readFields(DataInput In) throws IOException {
        Type = new IntWritable(In.readInt());
        ID = new IntWritable(In.readInt());
        X = new IntWritable(In.readInt());
        Y = new IntWritable(In.readInt());
        Xa = new IntWritable(In.readInt());
        Ya = new IntWritable(In.readInt());
        Distance = new DoubleWritable(In.readDouble());
    }
 
    @Override
    public void write(DataOutput Out) throws IOException {
        Out.writeInt(Type.get());
        Out.writeInt(ID.get());
        Out.writeInt(X.get());
        Out.writeInt(Y.get());
        Out.writeInt(Xa.get());
        Out.writeInt(Ya.get());
        Out.writeDouble(Distance.get());
    }
 
    @Override
    public int compareTo(Hotel h) {
        int R = 0;
        if (this.getXa() == h.getXa()) {
            if (this.getYa() == h.getYa()) {
                R = this.getType() - h.getType(); // 实现shuffle阶段二次排序,把酒店放在每个group的最前面
            } else {
                if (this.getYa() > h.getYa()) {
                    R = 1;
                }
                else {
                    R = -1;
                }
            }
        } else {
            if (this.getXa() > h.getXa()) {
                R = 1;
            }
            else {
                R = -1;
            }
        }
        return R;
    }
 
    @Override
    public String toString() {
        return getXa() + "\t" + getYa() + "\t" + getType() + "\t" + getID() + "\t" + getX() + "\t" + getY();
    }
}

代码有个小bug,修正了

class HotelPartitioner extends Partitioner<Hotel, NullWritable> {
    public int getPartition(Hotel key, NullWritable value, int numPartitions) {
        return Math.abs((int) ((key.getXa() + key.getYa()) % numPartitions));
    };
}

上一页  [1] [2] [3] [4] [5] [6] 

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    Unable to write data to the tr
    asp.net中listbox的items.count属
    C#不是每次查询数据是不是被缓存
    ASP.NET发布后能加载引用的js文件
    Hadoop2.2.0在eclipse控制台没有
    maven如何加自定义的包
    redhat 2.6 (santigo 5.6) vsftp
    shell如何实现自动填写操作执行下
    linux shell 文件配置sh:color:
    shell script语法一定要加path吗
    Hadoop2.2.0在eclipse控制台没有
    maven如何加自定义的包
    redhat 2.6 (santigo 5.6) vsftp
    shell如何实现自动填写操作执行下
    linux shell 文件配置sh:color:
    shell script语法一定要加path吗
    SecureCRT如何访问虚拟机vmWare中
    C#如何读取WINDOWS的放大系数
    cximge的图如何存入数据库并提取
    DBGRID控件显示查询结果文本类型
    mahout训练出来的分类模型如
    安装cloudera cdh5.2.0后执行
    sqoop数据导出不完整
    hadoop distcp源集群如何识别
    Hadoop2.2.0在eclipse控制台
    windows客户端如何访问hdfs
    yarn.scheduler.fair.locali
    asp中的access年度成绩查询排
    access如何用SQL语句查询时间
    sqlserver数据库刚启动 客户
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |