为了账号安全,请及时绑定邮箱和手机立即绑定

2 个键的 MapReduce Reducer - Python

2 个键的 MapReduce Reducer - Python

撒科打诨 2021-06-13 13:35:11
这应该很简单,我已经投入了几个小时。示例数据(名称、二进制、计数):Adam 0 1Adam 1 1Adam 0 1Mike 1 1Mike 0 1Mike 1 1  所需的示例输出(名称、二进制、计数):Adam 0 2Adam 1 1Mike 0 1Mike 1 2  每个名称都需要有自己的二进制键 0 或 1。根据二进制键,对计数列求和。注意所需输出中的“减少”。我已经提供了我的一些代码,我正在尝试在减速器中不使用列表或字典。""" Reducer 使用二进制文件命名,部分计数将它们相加输入:名称 \t 二进制 \t pCount输出:名称 \t 二进制 \t tCount"""import reimport syscurrent_name = Nonezero_count, one_count = 0,0for line in sys.stdin:    # parse the input    name, binary, count = line.split('\t')   if name == current_name:      if int(binary) == 0:        zero_count += int(count)    elif int(binary) == 1:        one_count += int(count)else:    if current_name:        print(f'{current_name}\t{0} \t{zero_count}')        print(f'{current_name}\t{1} \t{one_count}')    current_name, binary, count = word, int(binary), int(count)print(f'{current_name}\t{1} \t{count}')由于某种原因,它没有正确打印。(通过的名字很时髦)我也不确定通过 one_count 和 zero_count 的所有打印的最佳方法,这些打印也显示其二进制标签。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信