Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Попробуйте создать метку времени из лет, месяцев, дней, часов, минут, с и (необязательно) полей часового пояса. Кроме того, попробуйте создать метку времени с даты, времени и (необязательно) часового пояса. Тип данных результата соответствует значению конфигурации spark.sql.timestampType. Функция возвращает значение NULL для недопустимых входных данных.
Синтаксис
import pyspark.sql.functions as sf
# From individual components
sf.try_make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>)
# With timezone
sf.try_make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>, timezone=<timezone>)
# From date and time
sf.try_make_timestamp(date=<date>, time=<time>)
# From date and time with timezone
sf.try_make_timestamp(date=<date>, time=<time>, timezone=<timezone>)
Параметры
| Параметр | Тип | Description |
|---|---|---|
years |
pyspark.sql.Column или str |
Год для представления с 1 по 9999 год. Требуется при создании меток времени из отдельных компонентов. Необходимо использовать с месяцами, днями, часами, минутами и с. |
months |
pyspark.sql.Column или str |
Месяц для представления с 1 (январь) по 12 (декабрь). Требуется при создании меток времени из отдельных компонентов. Необходимо использовать с годами, днями, часами, минутами и с. |
days |
pyspark.sql.Column или str |
День месяца для представления от 1 до 31. Требуется при создании меток времени из отдельных компонентов. Необходимо использовать с годами, месяцами, часами, минутами и с. |
hours |
pyspark.sql.Column или str |
Час дня для представления от 0 до 23. Требуется при создании меток времени из отдельных компонентов. Необходимо использовать с годами, месяцами, днями, минутами и с. |
mins |
pyspark.sql.Column или str |
Минутное представление от 0 до 59. Требуется при создании меток времени из отдельных компонентов. Необходимо использовать с годами, месяцами, днями, часами и с. |
secs |
pyspark.sql.Column или str |
Вторую минуту и ее микро-дробь, чтобы представить, от 0 до 60. Значение может быть целым числом, например 13, или дробной частью, например 13,123. Если аргумент с равен 60, поле секунды равно 0 и 1 минуте добавляется в последнюю метку времени. Требуется при создании меток времени из отдельных компонентов. Необходимо использовать с годами, месяцами, днями, часами и минутами. |
timezone |
pyspark.sql.Column или str |
Необязательно. Идентификатор часового пояса. Например, CET, UTC и т. д. |
date |
pyspark.sql.Column или str |
Дата представления в допустимом формате DATE. Требуется при создании меток времени из компонентов даты и времени. Необходимо использовать только с параметром времени. |
time |
pyspark.sql.Column или str |
Время представления в допустимом формате TIME. Требуется при создании меток времени из компонентов даты и времени. Необходимо использовать только с параметром даты. |
Возвраты
pyspark.sql.Column: новый столбец, содержащий метку времени или NULL в случае ошибки.
Примеры
Пример 1. Создание метки времени от лет, месяцев, дней, часов, минут, с и часового пояса.
import pyspark.sql.functions as sf
df = spark.createDataFrame([[2014, 12, 28, 6, 30, 45.887, 'CET']],
['year', 'month', 'day', 'hour', 'min', 'sec', 'tz'])
df.select(
sf.try_make_timestamp(df.year, df.month, df.day, 'hour', df.min, df.sec, 'tz')
).show(truncate=False)
+----------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec)|
+----------------------------------------------------+
|2014-12-27 21:30:45.887 |
+----------------------------------------------------+
Пример 2. Создание метки времени от лет, месяцев, дней, часов, минут и с (без часового пояса).
import pyspark.sql.functions as sf
df = spark.createDataFrame([[2014, 12, 28, 6, 30, 45.887, 'CET']],
['year', 'month', 'day', 'hour', 'min', 'sec', 'tz'])
df.select(
sf.try_make_timestamp('year', 'month', df.day, df.hour, df.min, df.sec)
).show(truncate=False)
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|2014-12-28 06:30:45.887 |
+------------------------------------------------------+
Пример 3. Создание метки времени с даты и времени с помощью часового пояса.
import pyspark.sql.functions as sf
from datetime import date, time
df = spark.range(1).select(
sf.lit(date(2014, 12, 28)).alias("date"),
sf.lit(time(6, 30, 45, 887000)).alias("time"),
sf.lit("CET").alias("tz")
)
df.select(sf.try_make_timestamp(date=df.date, time=df.time, timezone=df.tz)).show(truncate=False)
+----------------------------------------+
|try_make_timestamp(date, time, timezone)|
+----------------------------------------+
|2014-12-27 21:30:45.887 |
+----------------------------------------+
Пример 4. Создание метки времени из даты и времени (без часового пояса).
import pyspark.sql.functions as sf
from datetime import date, time
df = spark.range(1).select(
sf.lit(date(2014, 12, 28)).alias("date"),
sf.lit(time(6, 30, 45, 887000)).alias("time")
)
df.select(sf.try_make_timestamp(date=df.date, time=df.time)).show(truncate=False)
+------------------------------+
|try_make_timestamp(date, time)|
+------------------------------+
|2014-12-28 06:30:45.887 |
+------------------------------+
Пример 5. Возвращает значение NULL для недопустимых входных данных.
import pyspark.sql.functions as sf
df = spark.createDataFrame([[2014, 13, 28, 6, 30, 45.887]],
['year', 'month', 'day', 'hour', 'min', 'sec'])
df.select(
sf.try_make_timestamp('year', 'month', df.day, df.hour, df.min, df.sec)
).show(truncate=False)
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|NULL |
+------------------------------------------------------+