假设我有三种基本模型:用户,公司和访问。每次用户访问公司时,都会以此格式记录访问(user_id, company_id, visit_date)
。使用MapReduce或其他分布式计算方法进行分析计算?
我希望能够计算公司访问之间的平均时间。没有整体访问,但具体来说,他们的客户平均多久才返回商店等待。
例如,如果一个用户在星期二,星期三和星期五访问了一天的一个“缺口”,两天的一个“缺口”=>(1,2)。如果另一个用户在星期一和星期五访问,则会给出4天的差距=>(4)。如果第三个用户只访问过一次,他不应该考虑。用户访问该公司的平均时间为(1 + 2 + 4)/ 3 = 2.333天。
如果我有成千上万的用户,水龙头和公司,我想为每家公司计算一个数字,我应该如何处理这个问题?我之前只做过基本的MapReduce应用程序,但我无法弄清楚我的Map和Reduce步骤是如何完成的。任何人都可以帮助我找出伪代码中的MapReduce?或者还有其他一些我可以合理执行的分布式计算方法吗?为了记录,我想每晚在我的数据库上执行此操作。
我对你正在做的“差距”有点困惑,你能详细说明一下吗? – 2012-07-19 13:57:19
差距就像您定义的那样:用户对公司进行的两次连续访问之间的时间差异。我会再编辑一些答案 – 2012-07-19 15:13:38