所以我试图找出这个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,因为它必须按字母顺序排列。
有人能帮忙吗?
在Map-Reduce程序中,主要的问题是:什么是键,什么是值。Map-reduce程序在键/值规则上工作。您定义了键和值,下一步您可以定义其他键和值,依此类推。例如,在开始时,键是raw的索引(数字),值是该raw中的值。在map
函数的代码中,你定义了新的键和值,然后进入reduce
函数,在那里你遍历所有的键并对具有相同键的值进行一些操作。
map reduce的经典例子是单词计数程序。
在你的例子中,在你的映射函数中,你可以设置一个键a pair in alphabetical order
,其值将是pair itself
在reduce函数中,你遍历每个键的所有值并查找反向顺序,如果有反向顺序,则将此值写入result
后map函数输出将为:
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