重用两个MapReduce作业的输出并将结果合并在一起

时间:2018-10-23 04:33:10

标签: python hadoop mapreduce

我想加入两个不同的MapReduce作业的输出。我希望能够做下面的事情,但是我无法弄清楚如何重用先前工作的结果并将其加入。我该怎么办?

Job1: 
Andrea Vanzo, c288f70f-f417-4a96-8528-25c61372cae7, 125 

Job2:
c288f70f-f417-4a96-8528-25c61372cae7, 071e1103-1b06-4671-8324-a9beb3e90d18, 25

Result:
Andrea Vanzo, c288f70f-f417-4a96-8528-25c61372cae7,  25

1 个答案:

答案 0 :(得分:0)

您可以使用JobControl在mappereduce中设置工作流程,顺便说一句(使用MultipleInputs读取job1&job2的输出也可以解决您的问题。

使用不同的处理方法并根据数据路径写入数据。

映射器

job1data == job1.path =>拆分写入密钥数据[1],值数据[0] +“ tagjob1”

job2data == job2.path =>拆分写入密钥数据[0],值数据[0] +“ tagjob2”

减速器
每个键都有其值集。

通过“标签”将值放入两个列表组

写出密钥和两个列表的每个笛卡尔积。

希望