timestampadd(unit, interval, timestamp)
Описание
Функция timestampadd()
добавляет указанный интервал времени к временной метке.
Параметры
unit
: Column - единица измерения времени (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND)interval
: Column - количество единиц для добавленияtimestamp
: Column - временная метка, к которой добавляется интервал
Возвращаемое значение
Column - новая временная метка после добавления интервала
Пример использования
from pyspark.sql.functions import timestampadd, lit, to_timestamp
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("timestampadd_example").getOrCreate()
# Создаем DataFrame с временными метками
data = [
("2023-01-01 00:00:00",),
("2023-12-31 23:59:59",)
]
df = spark.createDataFrame(data, ["timestamp"])
# Добавляем различные интервалы
result = df.withColumn(
"next_year",
timestampadd(lit("YEAR"), lit(1), to_timestamp("timestamp"))
).withColumn(
"next_month",
timestampadd(lit("MONTH"), lit(1), to_timestamp("timestamp"))
).withColumn(
"next_day",
timestampadd(lit("DAY"), lit(1), to_timestamp("timestamp"))
)
result.show(truncate=False)
# Результат:
# +-------------------+-------------------+-------------------+-------------------+
# |timestamp |next_year |next_month |next_day |
# +-------------------+-------------------+-------------------+-------------------+
# |2023-01-01 00:00:00|2024-01-01 00:00:00|2023-02-01 00:00:00|2023-01-02 00:00:00|
# |2023-12-31 23:59:59|2024-12-31 23:59:59|2024-01-31 23:59:59|2024-01-01 23:59:59|
# +-------------------+-------------------+-------------------+-------------------+
Примечания
- Возвращает NULL, если любой из аргументов NULL
- Поддерживает различные единицы измерения времени
- Полезно для:
- Добавления временных интервалов
- Вычисления будущих дат
- Создания временных рядов
- Связанные функции:
timestampdiff()
- разница между временными меткамиdate_add()
- добавление дней к дате