Hadoop MapReduce基础知识

Hadoop MapReduce基础知识,hadoop,Hadoop,(一)` 地图(nr,txt) words=split(txt,”) 对于(i=0;i

(一)` 地图(nr,txt)

words=split(txt,”)
对于(i=0;i<|单词|-1;i++)
发射(字[i]+''+字[i+1],1)
减少(键,VAL)
s=0
对于v:VAL
s+=v
如果(s=5)
发射(键,s)`
2) `地图(nr,txt)

words=split(txt,”)
for(i=0;i<|单词| i++)
发射(txt,长度(字[i]))
减少(键,VAL)
s=0
c=0
对于v:VAL
s+=v
c+=1
r=s/c
发射(键,r)`
我是MapReduce新手,当我无法理解“代码(1)中的if条件是否会满足”时

Q1我们需要确定这个MapReduce函数在这两个代码中都做了什么?
请您就上述问题提供任何意见。

第一段代码会发出所有出现5次以上的bigram。如果一对相邻字至少存在5次,则reducer if条件满足


第二个块发射输入文本的每个单词及其长度。它试图计算每个单词的平均长度,但由于reducer只看到一个键,因此该计算不会做任何事情(看到
“foo”
1000次仍然有3个长度)

第一个代码块发出所有出现5次以上的bigram。如果一对相邻字至少存在5次,则reducer if条件满足


第二个块发射输入文本的每个单词及其长度。它试图计算每个单词的平均长度,但由于减缩器只看到一个键,因此该计算不会起任何作用(看到
“foo”
1000次仍然有3个长度)

那么,输入数据是什么?@cricket\u 007:感谢您的回复。数据没有给出。这只是一段代码,我们必须解释它到底做了什么(根据MapReduce技术)。如果文本中有重复的单词,那么我们必须应用MapReduce函数来去掉重复单词的数量。这是我的理解,我不确定我是否正确,但是的,这是我在研究MapReduceWell后理解的,输入数据是什么?@cricket_007:谢谢你的回答。数据没有给出。这只是一段代码,我们必须解释它到底做了什么(根据MapReduce技术)。如果文本中有重复的单词,那么我们必须应用MapReduce函数来去掉重复单词的数量。这是我的理解,我不确定我是否正确,但是的,这是我在学习MapReduce后理解的
 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)`
  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)`