Поделиться через


make_timestamp_ltz

Создайте текущую метку времени с добавлением местного часового пояса из полей год, месяц, день, час, минута, секунда и часовой пояс. Если конфигурация spark.sql.ansi.enabled имеет значение false, функция возвращает значение NULL для недопустимых входных данных. В противном случае это приведет к возникновению ошибки.

Синтаксис

from pyspark.databricks.sql import functions as dbf

dbf.make_timestamp_ltz(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>, 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, optional Идентификатор часового пояса. Например, CET, UTC и т. д.

Возвраты

pyspark.sql.Column: новый столбец, содержащий текущую метку времени.

Примеры

spark.conf.set("spark.sql.session.timeZone", "America/Los_Angeles")
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([[2014, 12, 28, 6, 30, 45.887, 'CET']],
['year', 'month', 'day', 'hour', 'min', 'sec', 'tz'])
df.select(
dbf.make_timestamp_ltz(df.year, df.month, 'day', df.hour, df.min, df.sec, 'tz')
).show(truncate=False)
df = spark.createDataFrame([[2014, 12, 28, 6, 30, 45.887, 'CET']],
['year', 'month', 'day', 'hour', 'min', 'sec', 'tz'])
df.select(
dbf.make_timestamp_ltz(df.year, df.month, 'day', df.hour, df.min, df.sec)
).show(truncate=False)
spark.conf.unset("spark.sql.session.timeZone")