MRJob-Поиск длины значений для редуктора
Я пишу программу на основе MapReduce, используя MRJob. У меня вопрос по параметрам редуктора. Как вы знаете, функция Reducer принимает два параметра, которые являются ключевыми и значениями. Я хочу найти длину значений без записи каких-либо условий цикла, если это возможно. Код указан ниже.
Ошибка в функции reducer_IGPLInit. Ошибка: "Ошибка типа: объект типа" генератор "не имеет len()"
def mapperDataPartition(self, key, line):
p=5
(a, b, c, d) = line.split('\t')
yield randint(1,p),(a,b,c,d)
def reducerDataPartition(self, pVal, records):
for rec in records:
yield pVal, (rec)
def reducer_IGPLInit(self, pVal, records):
yield None, len(records) #### HERE I FACE WITH AN ERROR
1 ответ
Мы можем преобразовать генератор в список, и мы можем найти размер списка
length = len(list(records))
а также если вы конвертируете это. Тогда вы можете использовать генератор как список