PySpark:GroupBy 并计算列的唯一值的总和

PySpark: GroupBy and count the sum of unique values for a column

我有一个device_id的事件数据,可能有时成功,有时不成功。

device_id status
1 Successful
1 UnSuccessful
1 UnSuccessful
1 UnSuccessful
1 Successful
2 Successful
2 UnSuccessful
2 UnSuccessful

有没有办法像这样在单行中进行分组并获得 Id 的结果:

device_id success_count unsuccessful_count
1 2 3
2 1 2

我一直在尝试使用 group by 的几种方法,但我无法在单行中获得 device_id 的 success_count 和 unsuccessful_count。

您需要按设备 ID 对数据进行分组,然后按状态和计数进行透视:

df.groupBy("device_id").pivot("status").count()