Я пишу простую программу Map Reduce, которая подсчитывает количество твитов, отправленных в день во время спортивного события.
def mapper(self,_,line):
#Extracting the fields of csv line
fields = line.split(";")
#To choose the actual tweet we extract field[4]
for field[4] in fields:
time_epoch = int(fields[0])/1000
#Extract date tweet was sent
day = time.strftime("%d",time.gmtime(time_epoch))
#For each date, count num of tweets sent
#Since calculating the number of tweets sent each day
#Shouldn't day be the key, and intermediate value be 1
yield(day, 1)
И теперь код редуктора принимает промежуточный ключ, значения и агрегирует:
def reducer(self, day, counts):
#For each day during the sporting event, calculate the total tweets sent
yield(day, sum(counts))
Я пытался решить, должен ли ключ для редуктора быть реальным твитом или днем, когда твит был отправлен.Тем не менее, я пришел к выводу, что, поскольку я хочу вычислить итоговую сумму за каждый день, конкретный день должен быть ключевым.
Однако, я получаю сообщение об ошибке, мне было интересно, есть личто-то очевидно, что я скучаю?Большое спасибо!