Aller au contenu principal

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

Python
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

years

pyspark.sql.Column OU str

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.

months

pyspark.sql.Column OU str

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.

days

pyspark.sql.Column OU str

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.

hours

pyspark.sql.Column OU str

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.

mins

pyspark.sql.Column OU str

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.

secs

pyspark.sql.Column OU str

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.

timezone

pyspark.sql.Column OU str

Facultatif. L'identifiant du fuseau horaire. Par exemple : CET, UTC, etc.

date

pyspark.sql.Column OU str

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.

time

pyspark.sql.Column OU str

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.

parameter

Type

Description

years

pyspark.sql.Column OU str

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.

months

pyspark.sql.Column OU str

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.

days

pyspark.sql.Column OU str

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.

hours

pyspark.sql.Column OU str

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.

mins

pyspark.sql.Column OU str

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.

secs

pyspark.sql.Column OU str

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.

timezone

pyspark.sql.Column OU str

Facultatif. L'identifiant du fuseau horaire. Par exemple : CET, UTC, etc.

date

pyspark.sql.Column OU str

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.

time

pyspark.sql.Column OU str

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.

Python
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)
Output
+----------------------------------------------------+
|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).

Python
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)
Output
+------------------------------------------------------+
|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.

Python
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)
Output
+----------------------------------------+
|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).

Python
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)
Output
+------------------------------+
|try_make_timestamp(date, time)|
+------------------------------+
|2014-12-28 06:30:45.887 |
+------------------------------+

Exemple 5 : Retourne NULL pour une entrée non valide.

Python
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)
Output
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|NULL |
+------------------------------------------------------+