MapReduce Computing Average - PullRequest
       4

MapReduce Computing Average

0 голосов
/ 11 апреля 2019

Я занимаюсь написанием простого кода MapReduce на Python, используя методы mapper, combiner и reducer.Входные данные - это кортеж (StudentID, оценка), а выходные данные задания MapReduce должны соответствовать средней оценке учащихся.

Мне было интересно, правильно ли я использую метод объединения и редуктора.Есть ли очевидные ошибки?

Любая обратная связь очень ценится.

#MapReduce Code that computes average
#input: (studentID, grade)
#Output: compute module average

#Emit key,value pairs
def mapper(self, _, tuple):
 elements = tuple.split("")
 studentGrade = elements[1]
 yield(studentGrade,1)

#Combiner should do some aggregate computation
#Say key is 100, and values = 1,1,1,1
def combiner(self,grade,values):
   count=0
   sum=0
   for i in values:
     count = count + i
     sum = sum + grade
     #At the end of the for loop sum=400 and count=4
   yield(sum,count)

#Combine aggregate and compute average
def reducer(self,grade,value):
  count=0
  sum=0
  for i in value:
    count=count+i
    sum=sum+grade
    average = sum/count
    yield("average",average)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...