Hadoop多个输入

 mobiledu2502872825 发布于 2022-12-07 13:32

我正在使用hadoop map reduce,我想计算两个文件.我的第一个Map/Reduce迭代给了我一个带有ID号码的文件,如下所示:

A 30
D 20

我的目标是使用文件中的ID与另一个文件关联,并使用另一个三重奏输出:ID,Number,Name,如下所示:

A ABC 30
D EFGH 20

但我不确定使用Map Reduce是否是最好的方法.例如,使用文件读取器读取第二个输入文件并通过ID获取名称会更好吗?或者我可以使用Map Reduce吗?

如果是这样,我正在试图找出方法.我尝试了一个MultipleInput解决方案:

MultipleInputs.addInputPath(job2, new Path(args[1]+"-tmp"),
    TextInputFormat.class, FlightsByCarrierMapper2.class);
MultipleInputs.addInputPath(job2, new Path("inputplanes"),
    TextInputFormat.class, FlightsModeMapper.class); 

但我想不出任何解决方案将两者结合起来并得到我想要的输出.我现在的方式是给我这样的列表:

A ABC
A 30
B ABCD
C ABCDEF
D EFGH
D 20

在我最后减少之后我得到了这个:

N125DL  767-332
N125DL  7   , 
N126AT  737-76N
N126AT  19  , 
N126DL  767-332
N126DL  1   , 
N127DL  767-332
N127DL  7   , 
N128DL  767-332
N128DL  3

我想要这个:N127DL 7 767-332.而且,我不希望那些没有结合的.

这是我的减少类:

公共类FlightsByCarrierReducer2延伸减速机{

String merge = "";
protected void reduce(Text token, Iterable values, Context context) 
                            throws IOException, InterruptedException {

    int i = 0;  
    for(Text value:values)
    {
        if(i == 0){
            merge = value.toString()+",";
        }
        else{
            merge += value.toString();
        }
        i++;
    }

        context.write(token, new Text(merge));

}

}

更新:

http://stat-computing.org/dataexpo/2009/the-data.html这是我正在使用的例子.

我正在尝试:TailNum和Canceled,它是(1或0)获取对应于TailNum的模型名称.我的模型文件有TailNumb,Model和其他东西.我目前的输出是:

N193JB ERJ 190-100 IGW

N194DN 767-332

N19503 EMB-135ER

N19554 EMB-145LR

N195DN 767-332

N195DN 2

首先是钥匙,第二是模型,有航班取消的钥匙,在模型下面出现

我想要一个三重键,取消的型号,因为我想要每个型号的取消数量

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有