python - MapReduce 统计出现的行数
问题描述
目前,我有一个 user_follower.csv,例如:
user follower
a b
a c
a b
b a
b c
我正在尝试执行 mapreduce,在应用 mapreduce 后,我可以得到如下输出:
user follower counts
a b 2
a c 1
b a 1
b c 1
我是一个使用 mapreduce 概念并在命令行中用 vim 编写 python 脚本的初学者。这是我必须得到的输出,但是得到了ValueError: too many values to unpack
import sys
from collections import Counter
counts= Counter('user')
for line in sys.stdin:
data = line.strip()
user, follower = data
counts[line] += 1
sys.stdout.write("{0}\t{1}\t{2}\n".format(user,follower,counts))
任何帮助或建议将不胜感激。
解决方案
data=line.split(" ")
user, follower = data[0], data[1]
在 mapreduce 中,我们通常使用 2 个文件。在每个用户关注者对的映射文件输出 1 中,在 reduce 文件中执行聚合。