Skip to content

make_dt_interval(days, hours, minutes, seconds)

Описание

Функция make_dt_interval() создает интервал даты и времени из указанных компонентов.

Параметры

  • days: int - количество дней
  • hours: int - количество часов
  • minutes: int - количество минут
  • seconds: int - количество секунд

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

Column - интервал даты и времени

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

from pyspark.sql.functions import make_dt_interval, current_timestamp, col
from pyspark.sql import SparkSession

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

# Создаем DataFrame
data = [
    (1, 2, 30, 45),
    (0, 12, 0, 0),
    (7, 0, 0, 0)
]
df = spark.createDataFrame(data, ["days", "hours", "minutes", "seconds"])

# Создаем интервалы
df = df.withColumn("interval", 
    make_dt_interval(col("days"), col("hours"), col("minutes"), col("seconds")))
df = df.withColumn("current_time", current_timestamp())
df = df.withColumn("future_time", 
    col("current_time") + col("interval"))
df.show(truncate=False)

# Результат:
# +----+-----+-------+-------+-------------------+-------------------+-------------------+
# |days|hours|minutes|seconds|interval           |current_time       |future_time        |
# +----+-----+-------+-------+-------------------+-------------------+-------------------+
# |1   |2    |30     |45     |1 days 2:30:45     |2023-12-20 15:30:45|2023-12-21 18:01:30|
# |0   |12   |0      |0      |12:00:00           |2023-12-20 15:30:45|2023-12-21 03:30:45|
# |7   |0    |0      |0      |7 days             |2023-12-20 15:30:45|2023-12-27 15:30:45|
# +----+-----+-------+-------+-------------------+-------------------+-------------------+

Примечания

  • Все параметры должны быть целыми числами
  • Отрицательные значения поддерживаются
  • Полезно для:
  • Создания временных интервалов
  • Вычисления будущих дат
  • Планирования событий
  • Связанные функции:
  • make_interval() - создание интервала
  • date_add() - добавление дней
  • timestampadd() - добавление к метке времени