Pular para o conteúdo principal

tente_criar_carimbo_de_data_hora

Tente criar um registro de data e hora a partir dos campos de anos, meses, dias, horas, minutos, segundos e (opcionalmente) fuso horário. Como alternativa, tente criar um registro de data e hora a partir dos campos de data, hora e (opcionalmente) fuso horário. O tipo de dados do resultado é consistente com o valor da configuração spark.sql.timestampType. A função retorna NULL para entradas inválidas.

Sintaxe

Python
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>)

Parâmetros

Parâmetro

Tipo

Descrição

years

pyspark.sql.Column ou str

O ano a ser representado, de 1 a 9999. Necessário ao criar registros de data e hora a partir de componentes individuais. Deve ser usado com meses, dias, horas, minutos e segundos.

months

pyspark.sql.Column ou str

O mês do ano a ser representado, de 1 (janeiro) a 12 (dezembro). Necessário ao criar registros de data e hora a partir de componentes individuais. Deve ser usado com anos, dias, horas, minutos e segundos.

days

pyspark.sql.Column ou str

O dia do mês a ser representado, de 1 a 31. Necessário ao criar registros de data e hora a partir de componentes individuais. Deve ser usado com anos, meses, horas, minutos e segundos.

hours

pyspark.sql.Column ou str

A hora do dia a ser representada, de 0 a 23. Necessário ao criar registros de data e hora a partir de componentes individuais. Deve ser usado com anos, meses, dias, minutos e segundos.

mins

pyspark.sql.Column ou str

O minuto da hora a ser representado, de 0 a 59. Necessário ao criar registros de data e hora a partir de componentes individuais. Deve ser usado com anos, meses, dias, horas e segundos.

secs

pyspark.sql.Column ou str

O segundo de minuto e sua microfração representam, de 0 a 60. O valor pode ser um número inteiro, como 13, ou uma fração, como 13,123. Se o argumento "sec" for igual a 60, o campo de segundos será definido como 0 e 1 minuto será adicionado ao carimbo de data/hora final. Necessário ao criar registros de data e hora a partir de componentes individuais. Deve ser usado com anos, meses, dias, horas e minutos.

timezone

pyspark.sql.Column ou str

Opcional. O identificador de fuso horário. Por exemplo, CET, UTC, etc.

date

pyspark.sql.Column ou str

A data a ser representada, em formato DATE válido. Necessário ao criar registros de data e hora a partir de componentes de data e hora. Deve ser usado apenas com parâmetro de tempo.

time

pyspark.sql.Column ou str

O horário a ser representado, em formato de HORA válido. Necessário ao criar registros de data e hora a partir de componentes de data e hora. Deve ser usado apenas com parâmetro de data.

Devoluções

pyspark.sql.ColumnUma nova coluna que contém um registro de data e hora ou NULL em caso de erro.

Exemplos

Exemplo 1 : Criar um registro de data e hora a partir de anos, meses, dias, horas, minutos, segundos e fuso horário.

Python
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)
Output
+----------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec)|
+----------------------------------------------------+
|2014-12-27 21:30:45.887 |
+----------------------------------------------------+

Exemplo 2 : Criar um registro de data e hora a partir de anos, meses, dias, horas, minutos e segundos (sem fuso horário).

Python
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)
Output
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|2014-12-28 06:30:45.887 |
+------------------------------------------------------+

Exemplo 3 : Criar um registro de data e hora a partir da data e hora, incluindo o fuso horário.

Python
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)
Output
+----------------------------------------+
|try_make_timestamp(date, time, timezone)|
+----------------------------------------+
|2014-12-27 21:30:45.887 |
+----------------------------------------+

Exemplo 4 : Criar um registro de data e hora a partir da data e hora (sem fuso horário).

Python
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)
Output
+------------------------------+
|try_make_timestamp(date, time)|
+------------------------------+
|2014-12-28 06:30:45.887 |
+------------------------------+

Exemplo 5 : Retorna NULL para entradas inválidas.

Python
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)
Output
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|NULL |
+------------------------------------------------------+