【问题标题】:MRJob :- Display intermediate values in map reduceMRJob :- 在 map reduce 中显示中间值
【发布时间】:2013-01-24 12:42:27
【问题描述】:

如何在使用 python MRJob 库运行 mapreduce 程序时在终端上显示中间值(即打印变量或列表)?

【问题讨论】:

    标签: python hadoop mapreduce mrjob


    【解决方案1】:

    您可以使用 sys.stderr.write() 将结果输出到标准错误。这是一个例子:

    from mrjob.job import MRJob
    import sys
    class MRWordCounter(MRJob):
        def mapper(self, key, line):
            sys.stderr.write("MAPPER INPUT: ({0},{1})\n".format(key,line))
            for word in line.split():
                yield word, 1
    
        def reducer(self, word, occurrences):
            occurencesList= list(occurrences)
            sys.stderr.write("REDUCER INPUT: ({0},{1})\n".format(word,occurencesList))
            yield word, sum(occurencesList)
    
    if __name__ == '__main__':
        MRWordCounter.run()
    

    【讨论】:

    • 供将来参考:您还可以查看作业创建的临时文件。映射器和组合的排序输出都存储在临时文件中。 MRjob 输出临时文件的路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多