在具有相同ID pyspark数据框的另一列中显示不同的值

时间:2020-08-07 23:01:34

标签: dataframe pyspark group-by

我有一个pyspark数据框,如下所示:

enter image description here

如何显示每个ID和按ID排序的每个唯一时间的计数?理想的结果如下。

[1]: https://i.stack.imgur.com/RHlkV.png

1 个答案:

答案 0 :(得分:1)

尝试使用 groupBy,count

Example:

df.show()
#+---+-------------------+
#| ID|               TIME|
#+---+-------------------+
#|  1|07-24-2019,19:47:36|
#|  2|07-24-2019,20:43:39|
#|  1|07-24-2019,20:47:36|
#|  1|07-24-2019,19:47:36|
#+---+-------------------+

from pyspark.sql.functions import *

df.groupBy("ID","TIME").\
agg(count(col("ID")).alias("count")).\
orderBy("ID","TIME").\
show()

#or using time as aggregation
df.groupBy("ID","TIME").\
agg(count(col("TIME")).alias("count")).\
orderBy("ID","TIME").\
show()

#+---+-------------------+-----+
#| ID|               TIME|count|
#+---+-------------------+-----+
#|  1|07-24-2019,19:47:36|    2|
#|  1|07-24-2019,20:47:36|    1|
#|  2|07-24-2019,20:43:39|    1|
#+---+-------------------+-----+
相关问题