2016-04-27 71 views
0
rdd1 key is (user_id, inc_id) 

USER_ID,inc_id,visit_date1 visit_date2 visit_date3 visit_date4pairedrdd:如何計算所有成對差異(在值)有效地

RDD2鍵也是(USER_ID,inc_id) USER_ID,inc_id,purchase_date1 purchase_date2 purchase_date3 purchase_date4

的日期中的時間序列的方式進行排序(visit_date1發生之前VISIT_DATE 2)

這裏是我想要計算的這個 條件的第一次出現的每個(USER_ID,inc_id)組合的最早時間 時(VISIT_DATE和PURCHASE_DATE)之間的差小於 超過24小時的內容。我想這樣做是一種非常有效的方式,因爲我的 擁有數千萬(user_id,inc_id)對和每個(user_id,inc_id)對的數百/千個條目。

下面是一些示例數據:

RDD1集

(100, 1) 2015-01-12 06:32:00.0 2015-02-14 18:32:20.0 2015-03-18 11:18:25.0 2015-04-28 10:18:24.0 

RDD2

(100, 1) 2014-12-18 16:32:00.0 2015-01-10 8:32:20.0 2015-03-18 20:18:25.0 2015-04-28 11:28:42.0 

在這種情況下,兩個(2015年3月18日11: 2015年3月18日:25.0 -18 20:18:25.0)和 (2015-04-28 10:18:24 2015-04-28 11:28:42.0)滿足24小時內的條件。但是,自2015年3月18日11:18:25.0之前發生的 2015-04-28 10:18:24.0我想(2015-03-18 11:18:25.0
2015-03-18 20:18 :25.0)作爲結果被選擇。

+0

和你有什麼你到目前爲止嘗試過?你還可以舉一個例子輸入和輸出嗎? – eliasah

+0

所有我能想到的是計算所有的成對日期差異,然後測試是否有任何這些值滿足條件。我認爲這可能效率很低。 – user3803714

+0

好的。你能回顧一下你的問題嗎?現在還不清楚你想要分享一些代碼。 :) – eliasah

回答

0

從我的理解,因爲你不給的數據類型或代碼示例,你需要foldbykey您的RDD,並檢查蓄電池和當前值之間的差值小於24小時