【发布时间】:2018-01-15 21:18:35
【问题描述】:
我有一个这样的数据框:
----------------------------------------------
| User_ID | Timestamp | Article_ID |
----------------------------------------------
| 121212 | 2018-01-15 10:00:00 | 1 |
| 121212 | 2018-01-15 10:05:00 | 11 |
| 121212 | 2018-01-15 10:10:00 | 12 |
| 989898 | 2018-01-15 17:30:00 | 100 |
| 989898 | 2018-01-15 17:40:00 | 200 |
| 989898 | 2018-01-15 17:50:00 | 1 |
| 989898 | 2018-01-15 17:55:00 | 11 |
|... | | |
----------------------------------------------
现在我想要每个 User_ID 具有最小时间戳的行。 结果应该是:
----------------------------------------------
| User_ID | Timestamp | Article_ID |
----------------------------------------------
| 121212 | 2018-01-15 10:00:00 | 1 |
| 989898 | 2018-01-15 17:30:00 | 100 |
|... | | |
----------------------------------------------
我尝试了以下方法:
df.groupBy('User_ID').agg(F.min('Timestamp')).show()
这还不错,但是缺少“Article_ID”列... 有人可以帮我吗?
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql