1. 程式人生 > >spark DataFrame、SQL 求兩行某列的差值

spark DataFrame、SQL 求兩行某列的差值

有這樣的一個需求:

    有使用者看廣告的資料,userid、date、timestamp,現在要求每個使用者當前觀看廣告距離上次多長時間。如果我們能計算好每個廣告行為距離上次發生該事件的時間差,我們就可以實現,基於頻繁刷廣告的行為進行反作弊。

     思路:

     先按userid,timestamp進行排序,不能進行groupby(userid).sort()。必須userid在前先排序好(其實就是按使用者分組好)。遍歷每個Row,並記住上一個Row,這樣用當前row的timestamp減去上一個pre row的timestamp就可以啦。