Skip to content

weekday(date)

Описание

Функция weekday() возвращает день недели для указанной даты (0 = понедельник, 6 = воскресенье).

Параметры

  • date: Column - дата или временная метка

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

Column - день недели (0-6)

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

from pyspark.sql.functions import weekday, to_date, lit
from pyspark.sql import SparkSession

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

# Создаем DataFrame с датами
data = [
    ("2024-03-18",),  # Понедельник
    ("2024-03-19",),  # Вторник
    ("2024-03-20",),  # Среда
    ("2024-03-21",),  # Четверг
    ("2024-03-22",),  # Пятница
    ("2024-03-23",),  # Суббота
    ("2024-03-24",)   # Воскресенье
]
df = spark.createDataFrame(data, ["date_str"])

# Преобразуем строки в даты и получаем день недели
df = df.withColumn("date", to_date("date_str"))
df = df.withColumn("day_of_week", weekday("date"))
df.show()

# Результат:
# +----------+----------+-----------+
# |  date_str|      date|day_of_week|
# +----------+----------+-----------+
# |2024-03-18|2024-03-18|          0|
# |2024-03-19|2024-03-19|          1|
# |2024-03-20|2024-03-20|          2|
# |2024-03-21|2024-03-21|          3|
# |2024-03-22|2024-03-22|          4|
# |2024-03-23|2024-03-23|          5|
# |2024-03-24|2024-03-24|          6|
# +----------+----------+-----------+

Примечания

  • Возвращает 0 для понедельника, 6 для воскресенья
  • Возвращает NULL, если входное значение NULL
  • Отличается от dayofweek(), который возвращает 1 для воскресенья, 7 для субботы
  • Полезно для анализа данных по дням недели
  • Часто используется для фильтрации и группировки данных