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! –