4
我是新手火花斯卡拉,我爲問愚蠢的問題(如果是)而道歉。我被困在一個問題,我簡化如下:星火斯卡拉 - 如何計數()通過兩行空調
有一個數據框有三列,「machineID」是機器的身份。 「startTime」是任務的開始時間戳。 「endTime」是任務的結束時間戳。
我的目標是計算每臺機器有多少空閒間隔。
例如,
在下表中,第1行和第2行表示在時間0開始並且在時間3結束並且在時間4再次開始的機器#1,因此時間間隔[3,4]空閒。對於第3行和第4行,機器#1在時間10開始並在時間20結束,並立即再次開始,因此沒有空閒時間。
machineID, startTime, endTime
1, 0, 3
1, 4, 8
1, 10, 20
1, 20, 31
...
1, 412, 578
...
2, 231, 311
2, 781, 790
...
數據幀已經是groupBy(「machineID」)。
我正在使用spark 2.0.1和scala 2.11.8
我今天學到了一些新東西,窗口函數.. +1 – Shankar
今天學習了lag()。解釋非常明確和有用。謝謝你maasg! –