mrjob的add_file_参数总是给出“TypeError:需要一个byteslike对象,而不是'str'”

2024-09-29 17:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在udemy中复制Marvel Superhero教程中的“使用MapReduce和Hadoop驯服大数据-动手吧!”。我尝试加载一个辅助文本文件,将英雄ID映射到他们的名字。但是,add_file_arg总是给我

File "MostPopularSuperHero.py", line 23, in load_name_dictionary
    print (self.options.heronames)
TypeError: a bytes-like object is required, not 'str'

我的可复制代码是:

from mrjob.job import MRJob
from mrjob.step import MRStep

class MostPopularSuperHero(MRJob):

    def configure_args(self):
        super(MostPopularSuperHero, self).configure_args()
        self.add_file_arg(
            '--heronames', 
            help="file of hero's names")


    def steps(self):
        return [
                MRStep(mapper_init = self.load_name_dictionary)
        ]


    def load_name_dictionary(self):
        
        print (self.options.heronames)
        

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

请问这个错误的原因是什么?谢谢大家!


Tags: namefromimportselfadddictionarydefarg

热门问题