make_timestamp
Créez un Timestamp à partir des champs années, mois, jours, heures, minutes, secondes et (facultatif) fuseau horaire. Autrement, créez un Timestamp à partir des champs date, heure et (facultatif) fuseau horaire. Le type de données du résultat est cohérent avec la valeur de la configuration spark.sql.timestampType. Si la configuration spark.sql.ansi.enabled est fausse, la fonction renvoie NULL pour les entrées non valides. Sinon, il générera une erreur à la place.
Pour la fonction Databricks SQL correspondante, consultez la fonctionmake_timestamp.
Syntaxe
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>)
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.ColumnUne nouvelle colonne qui contient un timestamp.
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.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 |
+----------------------------------------------------+
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]],
['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 |
+--------------------------------------------------+
**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.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 |
+------------------------------------+
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.make_timestamp(date=df.date, time=df.time)).show(truncate=False)
+--------------------------+
|make_timestamp(date, time)|
+--------------------------+
|2014-12-28 06:30:45.887 |
+--------------------------+