我有一个看起来像这样的DataFrame
|Start |End |Description|Value|
|--------|--------|-----------|-----|
|01:02:00|01:05:00|A |1.0 |
|01:05:00|01:08:00|A |4.0 |
|01:08:00|01:11:00|A |4.3 |
|01:11:00|01:15:00|B |18.2 |
|01:21:00|01:55:00|C |0.0 |
|01:55:00|02:07:00|A |1.8 |
现在我的目标是使用spark将所有基本上属于一个大时期的时段组合在一起,像这样:
|Start |End |Description|Value(SUM)|
|--------|--------|-----------|----------|
|01:02:00|01:11:00|A |9.3 |
|01:11:00|01:15:00|B |18.2 |
|01:21:00|01:55:00|C |0.0 |
|01:55:00|02:07:00|A |1.8 |
所以,以某种方式把它放在文字中: 如果开始等于前一个结果且描述相同,我想合并两行。
我得到的问题是我需要以某种方式创建某种包含相干数据的窗口,但只要有不同的描述或最后结束时间不等于下一个开始时间就结束
我认为我不能仅仅在描述中使用groupby并在之后进行一些聚合,因为它错过了行的上下文(连贯的开始/结束)。
我已经尝试过使用超前和滞后的解决方案,并且我成功合并了句点,但是我无法处理这个值(对于一个简单的任务来说,它似乎也是一个非常复杂的操作)。
是否存在一种功能或方法来存档(以更好的方式)? 对于时间序列数据来说,这似乎是一个非常常见的过程,但我无法找到与此相关的任何资源。