to_timestamp(col, format=None)
Описание
Функция to_timestamp()
преобразует строку во временную метку, используя указанный формат.
Параметры
col
: Column - столбец со строками, содержащими даты и времяformat
: String (опционально) - формат временной метки (по умолчанию 'yyyy-MM-dd HH:mm:ss')
Возвращаемое значение
Timestamp - преобразованная временная метка
Пример использования
from pyspark.sql.functions import to_timestamp
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("to_timestamp_example").getOrCreate()
# Создаем DataFrame со строками временных меток
data = [
("2023-01-15 12:30:45",),
("15/01/2023 12:30:45",),
("2023.01.15 12:30:45",)
]
df = spark.createDataFrame(data, ["timestamp_str"])
# Преобразуем строки во временные метки с разными форматами
result = df.select(
"timestamp_str",
to_timestamp("timestamp_str").alias("default_format"),
to_timestamp("timestamp_str", "dd/MM/yyyy HH:mm:ss").alias("custom_format1"),
to_timestamp("timestamp_str", "yyyy.MM.dd HH:mm:ss").alias("custom_format2")
).show(truncate=False)
# Результат:
# +-------------------+-------------------+-------------------+-------------------+
# |timestamp_str |default_format |custom_format1 |custom_format2 |
# +-------------------+-------------------+-------------------+-------------------+
# |2023-01-15 12:30:45|2023-01-15 12:30:45|2023-01-15 12:30:45|2023-01-15 12:30:45|
# |15/01/2023 12:30:45|null |2023-01-15 12:30:45|null |
# |2023.01.15 12:30:45|null |null |2023-01-15 12:30:45|
# +-------------------+-------------------+-------------------+-------------------+
Примечания
- NULL значения возвращают NULL
- Если формат не указан, используется формат по умолчанию 'yyyy-MM-dd HH:mm:ss'
- Если строка не соответствует указанному формату, возвращается NULL
- Для работы с временными метками также используйте:
to_date()
для преобразования в датуdate_format()
для форматирования временной меткиyear()
для извлечения годаmonth()
для извлечения месяцаday()
для извлечения дняhour()
для извлечения часаminute()
для извлечения минутsecond()
для извлечения секунд