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))

а также если вы конвертируете это. Тогда вы можете использовать генератор как список

Другие вопросы по тегам