para_carimbo_de_data_utc
Essa é uma função comum para bancos de dados que suportam TIMESTAMP SEM FUSO HORÁRIO. Esta função A função recebe um timestamp que não se limita a um fuso horário específico e o interpreta como um timestamp no fuso horário fornecido. fuso horário e renderiza esse registro de data e hora como um registro de data e hora em UTC.
No entanto, o timestamp no Spark representa o número de microssegundos desde a época Unix, que não é Independente de fuso horário. Assim, no Spark, essa função simplesmente desloca o valor do timestamp do valor fornecido. fuso horário para fuso horário UTC.
Essa função pode retornar resultados confusos se a entrada for uma string com fuso horário, por exemplo. '2018-03-13T06:18:23+00:00'. O motivo é que, primeiro, Spark converte as strings em timestamps. de acordo com o fuso horário nas strings e, finalmente, exibir o resultado convertendo o Converter o carimbo de data/hora em strings de acordo com o fuso horário local da sessão.
Para a função Databricks SQL correspondente, consulte a funçãoto_utc_timestamp.
Sintaxe
from pyspark.databricks.sql import functions as dbf
dbf.to_utc_timestamp(timestamp=<timestamp>, tz=<tz>)
Parâmetros
Parâmetro | Tipo | Descrição |
|---|---|---|
|
| a coluna que contém os registros de data e hora |
|
| Uma sequência de caracteres que detalha o ID do fuso horário para o qual a entrada deve ser ajustada. Deve estar no formato de IDs de zona baseados em região ou deslocamentos de zona. Os IDs de região devem ter o formato 'área/cidade', como 'America/Los_Angeles'. Os deslocamentos de zona devem estar no formato '(+|-)HH'.', por exemplo, '-08:00' ou '+01:00'. Além disso, 'UTC' e 'Z' são suportados como sinônimos de '+00:00'. Não é recomendável usar outros nomes curtos, pois podem ser ambíguos. |
Devoluções
pyspark.sql.Column: valor de carimbo de data/hora representado no fuso horário UTC.
Exemplos
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('1997-02-28 10:30:00', 'JST')], ['ts', 'tz'])
df.select('*', dbf.to_utc_timestamp('ts', "PST")).show()
df.select('*', dbf.to_utc_timestamp(df.ts, df.tz)).show()