Хотя в Spark у нас нет функции sql, которая напрямую усекает дату и время до четверти, мы можем построить столбец, используя несколько функций. Сначала создайте DataFrame
from pyspark.sql.functions import current_timestamp
dateDF = spark.range(10)\
.withColumn("today", current_timestamp())
dateDF.show(10, False)
Затем обрежьте минуты, относящиеся к следующему кварталу (поместив его в столбец минут)
from pyspark.sql.functions import minute, hour, col, round, date_trunc, unix_timestamp, to_timestamp
dateDF2 = dateDF.select(col("today"),
(round(minute(col("today"))/15)*15).cast("int").alias("mins"))
Затем мы усекаем метку времени до thour measure, преобразуйте его в unix_timestamp, добавьте минуты для усечения и снова конвертируйте его в тип отметки времени
dateDF2.select(col("today"), to_timestamp(unix_timestamp(date_trunc("hour", col("today"))) + col("mins")*60).alias("truncated_timestamp")).show(10, False)
Надеюсь, это поможет