1) `Map(nr,txt)
words = split (txt, ' ')
for(i=0; i< |words| - 1; i++)
emit(words[i]+' '+words[i+1], 1)
reduce(key, vals)
s=0
for v : vals
s += v
if(s = 5)
emit(key,s)`
2) `Map(nr,txt)
words = split (txt, ' ')
for(i=0; i < |words|; i++)
emit(txt, length(words[i]))
reduce(key, vals)
s=0
c=0
for v : vals
s += v
c += 1
r = s/c
emit(key,r)`
我是mapreduce的新手,当我无法理解“代码(1)中的if条件是否会满足”时
q1我们需要确定这个mapreduce函数在两个代码中都做了什么?你能就上述问题提出意见吗。
1条答案
按热度按时间4xrmg8kj1#
第一个代码块发出所有出现5次以上的bigram。如果一对相邻字至少存在5次,则条件满足
第二个块发出输入文本的每个单词及其长度。它试图计算每个单词的平均长度,但由于reducer只看到一个键,因此该计算不会起任何作用(看到)
"foo"
1000次的长度仍然是3)