Compartir a través de


try_make_timestamp

Intente crear la marca de tiempo a partir de años, meses, días, horas, minutos, segundos y (opcional) campos de zona horaria. Como alternativa, intente crear la marca de tiempo a partir de campos de zona horaria de fecha, hora y (opcional). El tipo de datos de resultado es coherente con el valor de configuración spark.sql.timestampType. La función devuelve NULL en entradas no válidas.

Syntax

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 Description
years pyspark.sql.Column o str Año que se va a representar, de 1 a 9999. Necesario al crear marcas de tiempo a partir de componentes individuales. Debe usarse con meses, días, horas, minutos y segundos.
months pyspark.sql.Column o str Mes de año que se va a representar, del 1 (enero) al 12 de diciembre. Necesario al crear marcas de tiempo a partir de componentes individuales. Debe usarse con años, días, horas, minutos y segundos.
days pyspark.sql.Column o str Día de mes que se va a representar, de 1 a 31. Necesario al crear marcas de tiempo a partir de componentes individuales. Debe usarse con años, meses, horas, minutos y segundos.
hours pyspark.sql.Column o str Hora de día que se va a representar, de 0 a 23. Necesario al crear marcas de tiempo a partir de componentes individuales. Debe usarse con años, meses, días, minutos y segundos.
mins pyspark.sql.Column o str El minuto de hora que se va a representar, de 0 a 59. Necesario al crear marcas de tiempo a partir de componentes individuales. Debe usarse con años, meses, días, horas y segundos.
secs pyspark.sql.Column o str Segundo de minuto y su microfracción que se va a representar, de 0 a 60. El valor puede ser un entero como 13 o una fracción como 13.123. Si el argumento sec es igual a 60, el campo de segundos se establece en 0 y 1 minuto se agrega a la marca de tiempo final. Necesario al crear marcas de tiempo a partir de componentes individuales. Debe usarse con años, meses, días, horas y minutos.
timezone pyspark.sql.Column o str Optional. Identificador de zona horaria. Por ejemplo, CET, UTC, etc.
date pyspark.sql.Column o str Fecha que se va a representar, en formato DATE válido. Necesario al crear marcas de tiempo a partir de componentes de fecha y hora. Solo se debe usar con el parámetro time.
time pyspark.sql.Column o str Tiempo que se va a representar, en formato TIME válido. Necesario al crear marcas de tiempo a partir de componentes de fecha y hora. Solo se debe usar con el parámetro date.

Devoluciones

pyspark.sql.Column: una nueva columna que contiene una marca de tiempo o NULL en caso de error.

Examples

Ejemplo 1: marca de tiempo de años, meses, días, horas, minutos, segundos y zona horaria.

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                             |
+----------------------------------------------------+

Ejemplo 2: marca de tiempo de años, meses, días, horas, minutos y segundos (sin zona horaria).

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                               |
+------------------------------------------------------+

Ejemplo 3: Marca de tiempo a partir de fecha y hora con zona horaria.

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                 |
+----------------------------------------+

Ejemplo 4: Marca de tiempo a partir de fecha y hora (sin zona horaria).

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       |
+------------------------------+

Ejemplo 5: devuelve NULL en la entrada no válida.

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                                                  |
+------------------------------------------------------+