【发布时间】:2016-12-13 12:14:46
【问题描述】:
我有以下格式的数据框。我想为每个客户添加空行来缺少时间戳。
+-------------+----------+------+----+----+
| Customer_ID | TimeSlot | A1 | A2 | An |
+-------------+----------+------+----+----+
| c1 | 1 | 10.0 | 2 | 3 |
| c1 | 2 | 11 | 2 | 4 |
| c1 | 4 | 12 | 3 | 5 |
| c2 | 2 | 13 | 2 | 7 |
| c2 | 3 | 11 | 2 | 2 |
+-------------+----------+------+----+----+
结果表应该是格式
+-------------+----------+------+------+------+
| Customer_ID | TimeSlot | A1 | A2 | An |
+-------------+----------+------+------+------+
| c1 | 1 | 10.0 | 2 | 3 |
| c1 | 2 | 11 | 2 | 4 |
| c1 | 3 | null | null | null |
| c1 | 4 | 12 | 3 | 5 |
| c2 | 1 | null | null | null |
| c2 | 2 | 13 | 2 | 7 |
| c2 | 3 | 11 | 2 | 2 |
| c2 | 4 | null | null | null |
+-------------+----------+------+------+------+
我有 100 万客户和 360 个(在上面的示例中仅描述了 4 个)时间段。 我想出了一种方法来创建一个包含 2 列(Customer_id,Timeslot)和(1 M x 360 行)的数据框,并与原始数据框进行左外连接。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: sql apache-spark pyspark apache-spark-sql spark-dataframe