所以我试图找出这个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,因为它必须按字母顺序排列。
有人可以帮忙吗?
答案 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