首页 > 解决方案 > 如何在 mrjob 代码中放置打印语句以进行调试?

问题描述

如何在 mrjob 的 reducer 或 mapper 中放置调试语句(如 print)。如果我尝试使用 print 或 sys.stderr.write(),我会收到错误 TypeError: a bytes-like object is required, not 'str'

标签: pythonmrjob

解决方案


错误信息表明输出句柄对二进制流开放,而不是文本流(和之间的区别open(filename, 'w')open(filename, 'wb')尝试

sys.stdout.write(message.encode())

如果编码不是您的默认编码,您必须明确添加(例如message.encoode('utf-8'))。


推荐阅读