小编dex*_*x90的帖子

Hadoop多个输入

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

A 30
D 20
Run Code Online (Sandbox Code Playgroud)

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

A ABC 30
D EFGH 20
Run Code Online (Sandbox Code Playgroud)

但我不确定使用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); 
Run Code Online (Sandbox Code Playgroud)

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

A ABC
A 30
B ABCD
C ABCDEF
D EFGH
D 20
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

这是我的减少类:

公共类FlightsByCarrierReducer2延伸减速机{

String merge = "";
protected void reduce(Text token, Iterable<Text> …
Run Code Online (Sandbox Code Playgroud)

java hadoop mapreduce

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

hadoop ×1

java ×1

mapreduce ×1