python - 如何在 mrjob 代码中放置打印语句以进行调试?
问题描述
如何在 mrjob 的 reducer 或 mapper 中放置调试语句(如 print)。如果我尝试使用 print 或 sys.stderr.write(),我会收到错误 TypeError: a bytes-like object is required, not 'str'
解决方案
错误信息表明输出句柄对二进制流开放,而不是文本流(和之间的区别open(filename, 'w')
。open(filename, 'wb')
尝试
sys.stdout.write(message.encode())
如果编码不是您的默认编码,您必须明确添加(例如message.encoode('utf-8')
)。
推荐阅读
- html - Express 应用程序出现“CANNOT GET /”错误
- python - 覆盖 FilterSet.qs 时无法访问 self.request.user
- javascript - JavaScript 闭包和意外的 - 未定义 - 返回
- python - 在 kivy 和 kivymd 中设置谷歌键盘
- swagger - Swagger UI:对象中的必填字段
- reactjs - 使文本大小匹配容器,而不调整它的大小
- sap - 使用 sap webi 显示团队绩效与个人绩效
- reactjs - react-dates 响应式日期范围选择器
- java - CTRL+SHIFT+U 未使用 Java Selenium 打开 Wave 工具
- google-bigquery - 如何在bigquery中按月/年汇总