【发布时间】:2019-03-26 15:56:03
【问题描述】:
我目前有一个由变量“聚合器”按小时增量分组的数据集。这个每小时数据存在差距,我最理想的做法是用映射到 x 列中的变量的前一行向前填充行。
我已经看到使用 PANDAS 解决类似问题的一些解决方案,但理想情况下,我想了解如何最好地使用 pyspark UDF 解决这个问题。
我最初考虑使用 PANDAS 进行以下操作,但也很难实现这一点,只是忽略聚合器作为第一遍:
df = df.set_index(keys=[df.timestamp]).resample('1H', fill_method='ffill')
但理想情况下,我想避免使用 PANDAS。
在下面的示例中,我缺少两行每小时数据(标记为 MISSING)。
| timestamp | aggregator |
|----------------------|------------|
| 2018-12-27T09:00:00Z | A |
| 2018-12-27T10:00:00Z | A |
| MISSING | MISSING |
| 2018-12-27T12:00:00Z | A |
| 2018-12-27T13:00:00Z | A |
| 2018-12-27T09:00:00Z | B |
| 2018-12-27T10:00:00Z | B |
| 2018-12-27T11:00:00Z | B |
| MISSING | MISSING |
| 2018-12-27T13:00:00Z | B |
| 2018-12-27T14:00:00Z | B |
这里的预期输出如下:
| timestamp | aggregator |
|----------------------|------------|
| 2018-12-27T09:00:00Z | A |
| 2018-12-27T10:00:00Z | A |
| 2018-12-27T11:00:00Z | A |
| 2018-12-27T12:00:00Z | A |
| 2018-12-27T13:00:00Z | A |
| 2018-12-27T09:00:00Z | B |
| 2018-12-27T10:00:00Z | B |
| 2018-12-27T11:00:00Z | B |
| 2018-12-27T12:00:00Z | B |
| 2018-12-27T13:00:00Z | B |
| 2018-12-27T14:00:00Z | B |
感谢您的帮助。
谢谢。
【问题讨论】:
标签: pyspark pyspark-sql