Skip to content

unix_timestamp(timestamp=None, format=None)

Описание

Функция unix_timestamp() преобразует временную метку или строку в Unix timestamp (количество секунд с 1970-01-01 00:00:00 UTC).

Параметры

  • timestamp: Column (опционально) - столбец с временными метками или строками
  • format: String (опционально) - формат даты и времени (если timestamp - строка)

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

Long - Unix timestamp в секундах

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

from pyspark.sql.functions import unix_timestamp
from pyspark.sql import SparkSession
from datetime import datetime

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

# Создаем DataFrame с временными метками и строками
data = [
    (datetime(2023, 1, 15, 12, 30, 45), "2023-01-15 12:30:45"),
    (datetime(2023, 1, 15, 0, 0, 0), "2023-01-15"),
    (datetime(1970, 1, 1, 0, 0, 0), "1970-01-01")
]
df = spark.createDataFrame(data, ["timestamp", "date_str"])

# Преобразуем в Unix timestamp разными способами
result = df.select(
    "timestamp",
    "date_str",
    unix_timestamp("timestamp").alias("from_timestamp"),
    unix_timestamp("date_str").alias("from_str_default"),
    unix_timestamp("date_str", "yyyy-MM-dd").alias("from_str_custom")
).show(truncate=False)

# Результат:
# +-------------------+-------------------+-------------+----------------+-------------+
# |timestamp          |date_str           |from_timestamp|from_str_default|from_str_custom|
# +-------------------+-------------------+-------------+----------------+-------------+
# |2023-01-15 12:30:45|2023-01-15 12:30:45|1673785845   |1673785845      |1673740800    |
# |2023-01-15 00:00:00|2023-01-15        |1673740800   |1673740800      |1673740800    |
# |1970-01-01 00:00:00|1970-01-01        |0           |0              |0            |
# +-------------------+-------------------+-------------+----------------+-------------+

Примечания

  • NULL значения возвращают NULL
  • Если параметры не указаны, возвращает текущий Unix timestamp
  • Если timestamp - строка, необходимо указать соответствующий формат
  • Для работы с временными метками также используйте:
  • from_unixtime() для преобразования Unix timestamp в строку
  • to_timestamp() для преобразования строки во временную метку
  • to_date() для преобразования строки в дату
  • date_format() для форматирования даты и времени