Skip to content

extract(field FROM source)

Описание

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

Параметры

  • field: строка - поле для извлечения (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, etc.)
  • source: Column - столбец с датой, временем или временной меткой

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

Column - извлеченное значение указанного поля

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

from pyspark.sql.functions import extract, to_timestamp, lit
from pyspark.sql import SparkSession

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

# Создаем DataFrame с временными метками
data = [
    ("2023-01-15 14:30:45",),
    ("2023-02-28 23:59:59",),
    ("2023-12-31 00:00:00",)
]
df = spark.createDataFrame(data, ["timestamp_str"])

# Преобразуем строки в временные метки и извлекаем компоненты
df = df.withColumn("timestamp", to_timestamp("timestamp_str")) \
       .withColumn("year", extract("YEAR", "timestamp")) \
       .withColumn("month", extract("MONTH", "timestamp")) \
       .withColumn("day", extract("DAY", "timestamp")) \
       .withColumn("hour", extract("HOUR", "timestamp"))
df.show(truncate=False)

# Результат:
# +-------------------+-------------------+----+-----+---+----+
# |timestamp_str      |timestamp          |year|month|day|hour|
# +-------------------+-------------------+----+-----+---+----+
# |2023-01-15 14:30:45|2023-01-15 14:30:45|2023|1    |15 |14  |
# |2023-02-28 23:59:59|2023-02-28 23:59:59|2023|2    |28 |23  |
# |2023-12-31 00:00:00|2023-12-31 00:00:00|2023|12   |31 |0   |
# +-------------------+-------------------+----+-----+---+----+

Примечания

  • Возвращает NULL, если входное значение NULL
  • Поддерживаемые поля:
  • YEAR, MONTH, DAY
  • HOUR, MINUTE, SECOND
  • DAYOFWEEK, DAYOFYEAR
  • QUARTER, WEEK
  • Эквивалентна использованию отдельных функций:
  • year(), month(), day()
  • hour(), minute(), second()
  • Полезно для:
  • Извлечения нескольких компонентов даты/времени
  • Гибкой работы с различными частями временной метки
  • Совместимости с SQL-стандартом