【发布时间】:2012-07-17 21:31:52
【问题描述】:
假设我有三个基本模型:用户、公司和访问。每次用户去公司时,都会以(user_id, company_id, visit_date)这种格式记录一次访问。
我希望能够计算一家公司的平均访问时间。不是总体访问量,而是他们的一位顾客在返回商店之前平均等待多长时间。
例如,如果一位用户在周二、周三和周五访问,则给出 1 天的“间隙”和 2 天的“间隙” => (1, 2)。如果另一个用户在周一和周五访问,则有 4 天的间隔 => (4)。如果第三个用户只访问过一次,则不应考虑他。公司用户访问的平均时间为 (1 + 2 + 4) / 3 = 2.333 天。
如果我有成千上万的用户、水龙头和公司,我想为每家公司计算一个数字,我应该怎么做?我以前只做过基本的 MapReduce 应用程序,我不知道我的 Map 和 Reduce 步骤是什么来完成这项工作。任何人都可以帮我找出伪代码中的 MapReduce 吗?还是有其他一些我可以合理执行的分布式计算方法?作为记录,我想每晚对我的数据库执行此操作。
【问题讨论】:
标签: map mapreduce distributed-computing reduce