Compartir a través de


make_timestamp

Cree una marca de tiempo a partir de años, meses, días, horas, minutos, segundos y (opcional) campos de zona horaria. Como alternativa, cree una 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. Si la configuración spark.sql.ansi.enabled es false, la función devuelve NULL en entradas no válidas. De lo contrario, producirá un error en su lugar.

Para obtener la función SQL de Databricks correspondiente, consulte make_timestamp function.

Syntax

import pyspark.sql.functions as sf

# From individual components
sf.make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>)

# With timezone
sf.make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>, timezone=<timezone>)

# From date and time
sf.make_timestamp(date=<date>, time=<time>)

# From date and time with timezone
sf.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.

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.make_timestamp(df.year, df.month, df.day, 'hour', df.min, df.sec, 'tz')
).show(truncate=False)
+----------------------------------------------------+
|make_timestamp(year, month, day, hour, min, sec, tz)|
+----------------------------------------------------+
|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]],
    ['year', 'month', 'day', 'hour', 'min', 'sec'])
df.select(
    sf.make_timestamp('year', 'month', df.day, df.hour, df.min, df.sec)
).show(truncate=False)
+--------------------------------------------------+
|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.make_timestamp(date=df.date, time=df.time, timezone=df.tz)).show(truncate=False)
+------------------------------------+
|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.make_timestamp(date=df.date, time=df.time)).show(truncate=False)
+--------------------------+
|make_timestamp(date, time)|
+--------------------------+
|2014-12-28 06:30:45.887   |
+--------------------------+