Pyspark 在Pypark按小时分组?
我有一个dataframe,它包含字符串格式的时间列 数据帧=Pyspark 在Pypark按小时分组?,pyspark,apache-spark-sql,Pyspark,Apache Spark Sql,我有一个dataframe,它包含字符串格式的时间列 数据帧= time value 00:00:00 10 00:23:00 5 00:59:00 23 01:23:34 34 01:56:00 34 每次我尝试按时间列的小时分组时,它都会给出如下输出:- hour count 0 38 1 68 但我想这样出去
time value
00:00:00 10
00:23:00 5
00:59:00 23
01:23:34 34
01:56:00 34
每次我尝试按时间列的小时分组时,它都会给出如下输出:-
hour count
0 38
1 68
但我想这样出去
hour count
00 38
01 68
为此,我编写了如下查询:-
dataframe.groupBy(hour('time')).agg({'value':'count'})
引用
由于您的时间列位于StringType
中,因此我们可以使用子字符串
获取您想要的时间,并将其分组为StringType
from pyspark.sql.functions import substring, col
df = df.withColumn("hour", substring(F.col("time"), 0, 2))
group_df = df.groupby("hour").sum("value") # or whichever aggregation you want
我想你是在努力求和,而不是求数。