Partilhar via


make_timestamp

Cria carimbo temporal a partir de anos, meses, dias, horas, minutos, segundos e campos de fuso horário (opcionais). Alternativamente, crie carimbo temporal a partir dos campos data, hora e (opcional) fuso horário. O tipo de dado resultante é consistente com o valor da configuração spark.sql.timestampType. Se a configuração spark.sql.ansi.enabled for falsa, a função devolve NULL em entradas inválidas. Caso contrário, gera um erro em vez disso.

Para a função SQL do Databricks correspondente, veja make_timestamp função.

Sintaxe

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 ou str O ano para representar, de 1 a 9999. É obrigatório ao criar carimbos temporais 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 representar, de 1 (janeiro) a 12 (dezembro). É obrigatório ao criar carimbos temporais 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 representar, de 1 a 31. É obrigatório ao criar carimbos temporais 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 representar, de 0 a 23. É obrigatório ao criar carimbos temporais a partir de componentes individuais. Deve ser usado com anos, meses, dias, minutos e segundos.
mins pyspark.sql.Column ou str O minuto de hora a representar, de 0 a 59. É obrigatório ao criar carimbos temporais 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 a sua microfração para representar, de 0 a 60. O valor pode ser um inteiro como 13, ou uma fração como 13,123. Se o argumento sec for igual a 60, o campo segundos é definido para 0 e 1 minuto é adicionado ao carimbo temporal final. É obrigatório ao criar carimbos temporais a partir de componentes individuais. Deve ser usado com anos, meses, dias, horas e mínimos.
timezone pyspark.sql.Column ou str Opcional. O identificador do fuso horário. Por exemplo, CET, UTC, etc.
date pyspark.sql.Column ou str A data a representar, em formato válido de DATA. É necessário ao criar carimbos temporais a partir de componentes de data e hora. Deve ser usado apenas com parâmetro de tempo.
time pyspark.sql.Column ou str O tempo para representar, em formato válido de TIME. É necessário ao criar carimbos temporais a partir de componentes de data e hora. Deve ser usado apenas com o parâmetro de data.

Devoluções

pyspark.sql.Column: Uma nova coluna que contém um carimbo temporal.

Examples

Exemplo 1: Faça o carimbo temporal dos anos, meses, dias, horas, minutos, segundos e fuso horário.

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

Exemplo 2: Faça o carimbo temporal de anos, meses, dias, horas, minutos e segundos (sem fuso horário).

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

Exemplo 3: Marque o carimbo temporal da data e hora com o fuso horário.

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

Exemplo 4: Faça o carimbo temporal a partir da data e hora (sem fuso horário).

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