《Data Algorithm
》读书笔记之九 — 使用MapReduce
实现推荐引擎
帮助用户查找信息
减少搜索和导航时间
提高用户满意度
购买过该商品的顾客还购买了哪些商品?( CWBTIAB)
可以通过之前的代码来实现这个内容
top10
购物篮分析
共同好友 等等
输入
每个销售记录包含一个 user_id, bought_item 。只要显示一个商品, 电商就会推荐购买过这个商品的用户最常购买的其它几件商品。
<user_id, bought_item>
输出:
键值对形式。 键是商品【用户正在浏览的商品】,值是一个列表【包含购买过这个商品的顾客最常购买的5件商品】
需要两次迭代实现推荐商品的功能:
step 1:生成同一个用户购买的所有商品的列表。
step 2:解决列表商品的共现问题。 使用到了 Stripes(条纹)设计模式
Stripes设计模式
主要思想:将 键值对分组为一个关联数组。
如下所示:有个mapper 发出的键值对如下[使用传统方法]
(k,k1) 3
(k,k2) 2
(k,k3) 4
(k,k4) 6
(z,z1) 7
(z,z2) 8
(z,z3) 5
但是如果使用 Stripes 方法,得到的输出则是:
(k,{(k1,3),(k2, 2),(k3, 4),(k4,6)})
(z, {(z1, 7),(z2,8),(z3, 5)})
step 2中:采用 Stripes方法,映射器会完成大部分工作,聚集数据,然后把数据传递到组合器和归约器。
经常一起购买的商品
同购物篮分析。
推荐好友
共同好友