mapreduce基础知识

rqqzpn5f  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(327)

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函数在两个代码中都做了什么?你能就上述问题提出意见吗。

4xrmg8kj

4xrmg8kj1#

第一个代码块发出所有出现5次以上的bigram。如果一对相邻字至少存在5次,则条件满足
第二个块发出输入文本的每个单词及其长度。它试图计算每个单词的平均长度,但由于reducer只看到一个键,因此该计算不会起任何作用(看到) "foo" 1000次的长度仍然是3)

相关问题