Hadoop MapReduce有条件地打印名称对

时间:2015-07-13 15:50:11

标签: java hadoop mapreduce

所以我试图找出这个MapReduce程序问题的逻辑,我不需要代码,只需要逻辑帮助,因为我还是MapReduce的新手我不是很熟悉所有可能解决的问题一个问题。我尝试查找类似的程序,但没有运气。

问题: 给出一个名单(为简单起见,只考虑第一个字符)

输入:

A,B

D,F

P,E

A,B

A,C

B,A

E,P

我需要使用MapReduce只打印那些按字母顺序和按相反顺序提到的对(按字母顺序排列)。

因此输出将是:

A,B

E,P

注意:E,P打印不是P,E,因为它必须按字母顺序排列。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

在Map-Reduce程序中,主要问题是:什么是关键,什么是价值。 Map-reduce程序适用于键/值规则。您可以定义键和值,下一步可以定义其他键和值,依此类推。 例如,在开头,键是raw的索引(数字),值是此raw中的值。在map函数的代码中,您可以定义新密钥和值,然后转到reduce函数,在该函数中,您可以浏览所有密钥并使用具有相同密钥的值执行某些操作。

map reduce的经典示例是字数统计程序。

在地图功能的示例中,您可以设置一个键a pair in alphabetical order,其值为pair itself 在reduce函数中,您遍历每个键的所有值并查找相反的顺序,如果您有相反的顺序,请将此值写入结果

地图功能输出后的

将是:

A,B A,B 
A,B A,B
A,B B,A
A,C A,C
D,F D,F
E,P P,E
E,P E,P
减少之后

A,B A,B
P,E P,E