Группа по часам в писпарке? - PullRequest
0 голосов
/ 09 октября 2019

У меня есть датафрейм, который содержит столбец времени в формате строки.

dataframe =

      time         value
      00:00:00      10
      00:23:00      5
      00:59:00      23 
      01:23:34      34
      01:56:00      34

Каждый раз, когда я пытаюсь сгруппировать по часам в столбце Time, он выдает примерно такой код: -

 hour    count
  0       38
  1       68

Но я хочу Out outкак это ..

 hour    count
  00       38
  01       68

Для этого я написал запрос, как показано ниже: -

    dataframe.groupBy(hour('time')).agg({'value':'count'})

1 Ответ

0 голосов
/ 09 октября 2019

Цитирование подстановка нескольких символов из последнего индекса столбца строки pyspark с использованием отрицательной индексации

Поскольку ваш временной столбец находится в 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
...