多个输入文件在一个Mapper类Hadoop中?

时间:2015-03-28 16:16:30

标签: java hadoop mapreduce multiple-files

所以,我试图在MapReduce Paradigm中编写FP-Tree算法, 为了创建频繁的项目集列表,我有以下问题:

输入:

File1.txt(包含所有交易)

123 452 221 12 
45 76 987 
77 76 123 354 

[Each Line contains items Bought in one Transaction]

File2.txt(包含按降序购买的商品)

12    123

6     221

5     77

4     354

[Count] [Item Id]

输出:

output.txt

123 221  
123 77 354 

[2nd transaction is eliminated]

根据其计数的项目(降序),其他项目被删除

是否可以将File1.txt和File2.txt同时放入一个映射器类?因为这会解决我的问题

或者有没有办法以另一种方式执行此操作?

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

查看mapreduce分布式缓存示例。可以帮助完整

http://myhadoopexamples.com/2014/04/16/hadoop-map-side-join-with-distributed-cache-example/

在设置方法中读取文件。上面的链接将给出很好的指导。

Hadoop Map Reduce read a text file

答案 1 :(得分:0)

您可以在一个MR程序中读取多个文件。但是每个文件应该分别有一个mapper类。由于两个输入文件都不同,因此读取逻辑会因两者而异。你可以有两个映射器,每个映射器的输出应该具有相同的KEY并传递给reducer。

You can refer to distributed cache.