我想加入两个不同的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
最佳答案
您可以使用JobControl
在mappereduce中设置工作流程,顺便说一句,读取job1&job2的输出(使用MultipleInputs
)也可以解决您的问题。
使用不同的处理方法并根据数据路径写入数据。
映射器
job1data == job1.path =>拆分写入密钥数据[1],值数据[0] +“tagjob1”
job2data == job2.path =>拆分写入密钥数据[0],值数据[0] +“tagjob2”
reducer
每个键都有它的值集。
将值按“标签”放入两个列表组
写出密钥和每个笛卡尔乘积的两个 list 。
希望