【发布时间】:2020-04-13 15:19:33
【问题描述】:
有没有办法在 PySpark 中填写缺失的列日期和行值?目前,我将数据框转换为 Pandas 并在那里重新索引。
sdf.show()
+---+----------+----------+----------+
| id|2018-01-01|2018-01-03|2018-01-05|
+---+----------+----------+----------+
| 1 | 0.0| 1.0| 0.0|
| 2 | 4.0| 2.0| 0.0|
| 3 | 0.0| 1.0| 1.0|
| 7 | 0.0| 2.0| 9.0|
| 8 | 8.0| 0.0| 0.0|
| 9 | 0.0| 0.0| 3.0|
+---+----------+----------+----------+
idx = pd.date_range('01-01-2018', '01-07-2018').date
df = sdf.toPandas()
df = df.set_index('id')
df = df.reindex(idx, axis=1, fill_value=0)
我在 PySpark 中找不到类似的东西。
期望的输出:
+---+----------+----------+----------+----------+----------+
| id|2018-01-01|2018-01-02|2018-01-03|2018-01-04|2018-01-05|
+---+----------+----------+----------+----------+----------+
| 1 | 0.0| 0.0| 1.0| 0.0| 0.0|
| 2 | 4.0| 0.0| 2.0| 0.0| 0.0|
| 3 | 0.0| 0.0| 1.0| 0.0| 1.0|
| 7 | 0.0| 0.0| 2.0| 0.0| 9.0|
| 8 | 8.0| 0.0| 0.0| 0.0| 0.0|
| 9 | 0.0| 0.0| 0.0| 0.0| 3.0|
+---+----------+----------+----------+----------+----------+
【问题讨论】: