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()