python无法识别列表对象

5gfr0r5j  于 2021-06-01  发布在  Hadoop
关注(0)|答案(0)|浏览(177)

我目前正在用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关键字返回一个generator对象。我需要reducer对象中的一个列表,因此我尝试通过执行以下操作将Map器中的成对列表转换为一个列表:

pair = list(pair)

当我这样做并尝试运行它时,python返回一个“list object is not callable”错误。现在我看了这里和其他地方的一些其他答案,标准答案似乎是我在代码的其他地方使用列表,而不是python本身的内置列表对象,但我没有在这里这样做,无法找出哪里错了。有人能帮帮我吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题