Понимание этого MapReduce - PullRequest
       7

Понимание этого MapReduce

0 голосов
/ 25 октября 2018

Привет, я начинаю изучать модель программирования Map Reduce.Я пытаюсь понять фрагмент кода ниже.

Каждая строка в формате CSV, и поэтому необходимо разделить каждое поле строки.Обратите внимание, что поле [2] представляет отправленное твиттер-сообщение.

class Practice(MRJob):
    def mapper(self, _, line):
        try:
            fields = line.split(';')
            if len(fields) == 4 :
                bin = 5*math.floor(int(len(fields[2]))/5) #<--I am confused about this line
                yield (bin, 1)
        except:
            pass
            #do nothing
    def reducer(self, bin, counts):
        yield (bin, sum(counts))

Я запутался по поводу строки, отмеченной выше.


Насколько я понимаю, len (поле) вычислит длину твиттер-сообщения, преобразует его в целое число, а затем преобразует в тип integer и затем делит его на 5. Я исследовал, что математикаФункция метода .floor () возвращает наибольшее целое число, меньшее или равное данному числу.Насколько я понимаю, 5 * отменяет 5, так что на самом деле жирная строка кода

Однако я изо всех сил пытаюсь увидеть более широкую картину того, чего пытается добиться код Map Reduce.? 1. Считает ли количество твитов, кратное 5?

...