Hadoop MapReduce处理MovieLens ml-100k数据集

这篇博客介绍了如何利用Hadoop MapReduce处理MovieLens的ml-100k数据集,重点讲解了计算每个用户的平均评分的过程,包括map阶段和reduce阶段的操作。在merge步骤中,需要将u.data和u.item文件根据item进行合并,但在实际操作中发现存在bug,需要修复。
摘要由CSDN通过智能技术生成

数据集介绍

待补充
user id | item id | rating | timestamp.


每个用户的平均评分

map阶段
#coding=utf-8
import sys

for line in sys.stdin:
    line = line.strip().split()
    #userid rating
    print "%s\t%s" % (line[0], line[2])
[root@DW1 code]# cat u.data|python rating_mapper.py
...
880	3
716	5
276	1
13	2
12	3

reduce阶段
#coding=utf-8
import sys

curr_userid = None
curr_rating = 0
count = 0

for line in sys.stdin:
    userid, rating = line.strip().split('\t')

    if not curr_userid:
        curr_userid = userid
    if userid != curr_userid:
        print curr_userid + "\t" + str(curr_rating/count)
        curr_rating = 0
        count = 0
        curr_userid = userid
    curr_rating += int(rating)
    count += 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值