from_utc_timestamp
Convertit un Timestamp neutre en fuseau horaire (interprété comme un Timestamp UTC) en un Timestamp dans le fuseau horaire donné. Il s'agit d'une fonction courante pour les bases de données prenant en charge TIMESTAMP WITHOUT TIMEZONE.
Cependant, le timestamp dans Spark représente le nombre de microsecondes depuis l'époque Unix, ce qui n'est pas indépendant du fuseau horaire. Ainsi, dans Spark, cette fonction déplace simplement la valeur du timestamp du fuseau horaire UTC vers le fuseau horaire donné.
Cette fonction peut renvoyer un résultat inattendu si l'entrée est une chaîne de caractères avec un fuseau horaire, par exemple : 2018-03-13T06:18:23+00:00, car Spark convertit d'abord la chaîne en Timestamp selon le fuseau horaire dans la chaîne, puis affiche le résultat en convertissant le Timestamp en chaîne selon le fuseau horaire local de la session.
Pour la fonction Databricks SQL correspondante, consultez la fonctionfrom_utc_timestamp.
Syntaxe
from pyspark.sql import functions as dbf
dbf.from_utc_timestamp(timestamp=<timestamp>, tz=<tz>)
parameter
parameter | Type | Description |
|---|---|---|
|
| la colonne qui contient les timestamps |
|
| Une chaîne de caractères détaillant l'ID de fuseau horaire auquel l'entrée doit être ajustée. Il doit être au format d'identifiants de zone basés sur la région ou de décalages de zone. Les identifiants de région doivent être au format « zone/ville », tel que « America/Los_Angeles ». Les décalages de fuseau horaire doivent être au format '(+|- )HH', par exemple '-08:00' ou '+01:00'. Également, 'UTC' et 'Z' sont pris en charge comme alias de '+00:00'. Il n'est pas recommandé d'utiliser d'autres noms courts car ils peuvent être ambigus. |
Renvoie
pyspark.sql.Column: valeur de timestamp représentée dans le fuseau horaire donné.
Exemples
from pyspark.sql import functions as dbf
df = spark.createDataFrame([('1997-02-28 10:30:00', 'JST')], ['ts', 'tz'])
df.select('*', dbf.from_utc_timestamp('ts', 'PST')).show()
df.select('*', dbf.from_utc_timestamp(df.ts, df.tz)).show()