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()
我有一个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()