Найти тему
Властелин машин

Преобразование к типу даты и времени в Spark SQL

Оглавление

Время есть величайшая иллюзия. Оно есть только внутренняя призма, через которую мы разлагаем бытие и жизнь (А.Ф. Амиель).

Рассмотрим способы преобразования колонок с датой и временем в Spark SQL. Для начала сформируем демонстрационный датафрейм и зарегистрируем его в качестве временной таблицы:

str2date

Функция to_date принимает в качестве параметров имя колонки и формат и преобразует в тип pyspark.sql.types.DateType:

-2

Функция to_timestamp работает аналогично, только возвращает дату и время (pyspark.sql.types.TimestampType):

-3

Описание символов формата можно взять здесь.

date2str

Функция date_format принимает колонку с типом даты или даты и времени, а также формат вывода и возвращает строковое поле:

-4

date2unix

unix_timestamp принимает в качестве параметров дату и время/дату или строку в заданном формате (задается вторым параметром) и возвращает в количество секунд, прошедших с 1970-01-01 00:00:00. Ниже пример для нашего датафрейма:

-5

А здесь пример работы unix_timestamp с метками даты и времени на подзапросе с полями с заданными типом:

-6

unix2date

from_unixtime осуществляет обратное преобразование - количества секунд в метки даты и времени:

-7

Дополнительно о работе функций можно почитать здесь.

-8