Skip to content

date_trunc()

Описание

Функция date_trunc() обрезает дату или временную метку до указанной единицы времени (год, квартал, месяц, неделя, день, час, минута, секунда).

Параметры

  • unit: String - единица времени для обрезки (year, quarter, month, week, day, hour, minute, second)
  • timestamp: Column - дата или временная метка для обрезки

Возвращаемое значение

Timestamp - обрезанная дата или временная метка

Пример использования

from pyspark.sql import SparkSession
from pyspark.sql.functions import date_trunc, current_timestamp

# Создаем SparkSession
spark = SparkSession.builder.appName("date_trunc_example").getOrCreate()

# Создаем DataFrame
data = [
    (1,),
    (2,),
    (3,)
]
df = spark.createDataFrame(data, ["id"])

# Обрезаем текущую временную метку до разных единиц времени
result = df.select(
    "id",
    current_timestamp().alias("current_timestamp"),
    date_trunc("year", current_timestamp()).alias("truncated_to_year"),
    date_trunc("month", current_timestamp()).alias("truncated_to_month"),
    date_trunc("day", current_timestamp()).alias("truncated_to_day"),
    date_trunc("hour", current_timestamp()).alias("truncated_to_hour")
).show(truncate=False)

# Результат:
# +---+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+
# |id |current_timestamp         |truncated_to_year         |truncated_to_month        |truncated_to_day          |truncated_to_hour         |
# +---+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+
# |1  |2024-01-01 12:34:56.789  |2024-01-01 00:00:00.000  |2024-01-01 00:00:00.000  |2024-01-01 00:00:00.000  |2024-01-01 12:00:00.000  |
# |2  |2024-01-01 12:34:56.789  |2024-01-01 00:00:00.000  |2024-01-01 00:00:00.000  |2024-01-01 00:00:00.000  |2024-01-01 12:00:00.000  |
# |3  |2024-01-01 12:34:56.789  |2024-01-01 00:00:00.000  |2024-01-01 00:00:00.000  |2024-01-01 00:00:00.000  |2024-01-01 12:00:00.000  |
# +---+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+

Примечания

  • Поддерживаемые единицы времени: year, quarter, month, week, day, hour, minute, second
  • Функция работает с датами и временными метками
  • Для извлечения компонентов даты используйте year(), month(), day()
  • Для форматирования даты используйте date_format()
  • Для работы с временными зонами используйте from_utc_timestamp() и to_utc_timestamp()