Python无法识别列表对象

时间:2018-10-30 16:34:20

标签: python list hadoop mapreduce bigdata

我目前正在用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()

我在这里遇到的问题是Mapper对象中的yield关键字正在返回生成器对象。我在Reducer对象中需要一个列表,因此我试图通过执行以下操作将“配对”列表从“映射器”转换为列表:

pair = list(pair)

执行此操作并尝试运行它时,Python返回“无法调用列表对象”错误。现在,我在这里和其他地方查看了一些其他答案,标准答案似乎是我在代码中的其他位置使用列表,而不是Python本身内置的List对象,但我不在此处执行此操作,并且无法找出出什么问题。有人可以帮我吗?

0 个答案:

没有答案