我有一个数据框,其中包含字符串形式的时间列。
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
但是我要把Out这样放。
hour count
00 38
01 68
为此,我编写了如下查询;-
dataframe.groupBy(hour('time')).agg({'value':'count'})
答案 0 :(得分:0)
引用substring multiple characters from the last index of a pyspark string column using negative indexing
由于您的时间列位于StringType
中,因此我们可以使用substring
来获取所需的小时数,并将其分组为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