假設我有三種基本模型:用戶,公司和訪問。每次用戶訪問公司時,都會以此格式記錄訪問(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