首页 > 解决方案 > 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))

任何帮助或建议将不胜感激。

标签: pythonhadoopmapreduce

解决方案


data=line.split(" ")
user, follower = data[0], data[1]

在 mapreduce 中,我们通常使用 2 个文件。在每个用户关注者对的映射文件输出 1 中,在 reduce 文件中执行聚合。


推荐阅读