Python не распознает список объектов - PullRequest
0 голосов
/ 30 октября 2018

В настоящее время я пишу некоторый код обработки данных на Python для учебника по Hadoop и сталкиваюсь с некоторыми проблемами, которые я не совсем понимаю. Вот код:

from mrjob.job import MRJob

class tutorial4(MRJob):

    def mapper(self, _, line):
        fields = line.split(',')
        stockTotal = int(float(fields[6]) * float(fields[7]))
        key = fields[1]
        date = fields[2]
        pair = (key, date, stockTotal)
        yield(None, pair)

    def reducer(self, _, pair):
        pair = list(pair)
        sortedValues = sorted(pair, reverse = True, key = pair[2])
        yield(None, pair)

if __name__ == '__main__':
    tutorial4.run()

Проблема, с которой я столкнулся, заключается в том, что ключевое слово yield в объекте Mapper возвращает объект генератора. Мне нужен список в объекте Reducer, поэтому я пытаюсь превратить список пар из Mapper в список, выполнив:

pair = list(pair)

Когда я делаю это и пытаюсь запустить его, Python возвращает ошибку «Объект списка не вызывается». Теперь я рассмотрел несколько других ответов здесь и в других местах, и стандартный ответ, по-видимому, заключается в том, что я использую списки где-то еще в коде, а не встроенный объект List из самого Python, но я не делаю этого здесь и не могу понять, что не так. Может ли кто-нибудь помочь мне здесь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...