try_make_timestamp
Essayez de créer un timestamp à partir des champs années, mois, jours, heures, minutes, secondes et (facultatif) fuseau horaire. Alternativement, essayez de créer un Timestamp à partir des champs de date, d'heure et de fuseau horaire (facultatif). Le type de données du résultat est cohérent avec la valeur de la configuration spark.sql.timestampType. La fonction renvoie NULL pour les entrées non valides.
Ajouté dans Databricks Runtime 16.1
Syntaxe
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>)
parameter
parameter | Type | Description |
|---|---|---|
|
| L'année à représenter, de 1 à 9999. Requis lors de la création de Timestamp à partir de composants individuels. Doit être utilisé avec les mois, les jours, les heures, les minutes et les secondes. |
|
| Le mois de l'année à représenter, de 1 (janvier) à 12 (décembre). Requis lors de la création de Timestamp à partir de composants individuels. Doit être utilisé avec les années, les jours, les heures, les minutes et les secondes. |
|
| Le jour du mois à représenter, de 1 à 31. Requis lors de la création de Timestamp à partir de composants individuels. Doit être utilisé avec les années, les mois, les heures, les minutes et les secondes. |
|
| L’heure de la journée à représenter, de 0 à 23. Requis lors de la création de Timestamp à partir de composants individuels. Doit être utilisé avec les années, les mois, les jours, les minutes et les secondes. |
|
| La minute de l'heure à représenter, de 0 à 59. Requis lors de la création de Timestamp à partir de composants individuels. Doit être utilisé avec les années, les mois, les jours, les heures et les secondes. |
|
| La seconde de la minute et sa micro-fraction à représenter, de 0 à 60. La valeur peut être un nombre entier comme 13, ou une fraction comme 13,123. Si l'argument sec est égal à 60, le champ des secondes est mis à 0 et 1 minute est ajoutée au final Timestamp. Requis lors de la création de Timestamp à partir de composants individuels. Doit être utilisé avec les années, les mois, les jours, les heures et les minutes. |
|
| Facultatif. L'identifiant du fuseau horaire. Par exemple : CET, UTC, etc. |
|
| La date à représenter, au format DATE valide. Obligatoire lors de la création de Timestamp à partir des composants de date et d'heure. Doit être utilisé uniquement avec un parameter de temps. |
|
| L'heure à représenter, au format d'heure valide. Obligatoire lors de la création de Timestamp à partir des composants de date et d'heure. Doit être utilisé uniquement avec le parameter de date. |
Renvoie
pyspark.sql.Column: une nouvelle colonne qui contient un Timestamp ou NULL en cas d'erreur.
Exemples
Exemple 1 : Créer un timestamp à partir des années, mois, jours, heures, minutes, secondes et fuseau horaire.
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 |
+----------------------------------------------------+
Exemple 2 : Créer un timestamp à partir des années, mois, jours, heures, minutes et secondes (sans fuseau horaire).
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 |
+------------------------------------------------------+
**Exemple 3** : Créer un Timestamp à partir de la date et de l'heure avec fuseau horaire.
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 |
+----------------------------------------+
Exemple 4 : Créer un timestamp à partir de la date et de l'heure (sans fuseau horaire).
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 |
+------------------------------+
Exemple 5 : Retourne NULL pour une entrée non valide.
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 |
+------------------------------------------------------+