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