目前正在学习mapreduce并试图找出如何将其编码为java。
两个输入文件,名为customers.txt和car\u orders.txt:
customers.txt
===================
12345 Peter
12346 Johnson
12347 Emily
12348 Brad
[custNum, custName]
car_orders.txt
===================
00034 12345 23413
00035 12345 94832
00036 12346 8532
00037 12348 9483
[orderNo, custNum, carValue]
我们的想法是应用mapreduce并输出没有订购汽车的客户—在上面的场景中是emily。
Output:
===================
12347 Emily
这就是我的想法:
Map phase:
1. Read the data inside customers.txt, get key-value pair, (custNum, custName)
2. Read the data inside car_orders.txt, get key-value pair, (custNum, [orderNo, carValue])
3. Partition into groups based on the key
Reduce phase:
1. Compare key-value A and key-value B, if key-value B is NULL
2. Output key-value A
在此应用程序中,任何以伪代码形式提供的帮助都将不胜感激。
1条答案
按热度按时间uwopmtnx1#
它基本上是一个reduce-side连接,在这里您丢弃两边都被填充的输出-就像您将它放在伪代码中一样。
hadoop mapreduce中的代码如下所示:
会发出:
所以减速机看起来很简单:
那应该只是发出
Emily
.