Основы MapReduce - PullRequest
       1

Основы MapReduce

1 голос
/ 04 мая 2019

1) ` карта (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, и когда я не могу понять, будет ли когда-либо удовлетворяться условие if в коде (1)

Q1 Нам нужно определить, что эта функция MapReduce делает в обоих кодах? Не могли бы вы дать какие-либо комментарии по вышеуказанному вопросу.

1 Ответ

0 голосов
/ 05 мая 2019

Первый блок кода испускает все биграммы, которые появляются более 5 раз. Редуктор if условие удовлетворяет, если пара смежных слов существует хотя бы 5 раз

Второй блок выдает каждое слово входного текста с его длиной. Он пытается вычислить среднюю длину каждого слова, но, поскольку редуктор видит только один ключ, тогда это вычисление ничего не даст (если "foo" 1000 раз по-прежнему имеет длину 3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...