Teilen über


try_make_timestamp

Versuchen Sie, Zeitstempel aus Jahren, Monaten, Tagen, Stunden, Minen, Sek. und (optional) Zeitzonenfeldern zu erstellen. Alternativ können Sie auch zeitstempel aus Datums-, Uhrzeit- und (optional) Zeitzonenfeldern erstellen. Der Ergebnisdatentyp ist mit dem Wert der Konfiguration spark.sql.timestampTypekonsistent. Die Funktion gibt NULL für ungültige Eingaben zurück.

Syntax

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>)

Die Parameter

Parameter Typ Description
years pyspark.sql.Column oder str Das zu vertretende Jahr von 1 bis 9999. Erforderlich beim Erstellen von Zeitstempeln aus einzelnen Komponenten. Muss mit Monaten, Tagen, Stunden, Minen und Sek. verwendet werden.
months pyspark.sql.Column oder str Der Monat des Jahres, der von 1 (Januar) bis 12 (Dezember) dargestellt werden soll. Erforderlich beim Erstellen von Zeitstempeln aus einzelnen Komponenten. Muss mit Jahren, Tagen, Stunden, Minen und Sek. verwendet werden.
days pyspark.sql.Column oder str Der tag-of-month-Wert, der von 1 bis 31 dargestellt werden soll. Erforderlich beim Erstellen von Zeitstempeln aus einzelnen Komponenten. Muss mit Jahren, Monaten, Stunden, Minen und Sek. verwendet werden.
hours pyspark.sql.Column oder str Die von 0 bis 23 anzuzeigende Tagesstunde. Erforderlich beim Erstellen von Zeitstempeln aus einzelnen Komponenten. Muss mit Jahren, Monaten, Tagen, Minen und Sek. verwendet werden.
mins pyspark.sql.Column oder str Die Minute der Stunde, die von 0 bis 59 dargestellt werden soll. Erforderlich beim Erstellen von Zeitstempeln aus einzelnen Komponenten. Muss mit Jahren, Monaten, Tagen, Stunden und Sek. verwendet werden.
secs pyspark.sql.Column oder str Die zweite Minute und deren Mikrofraktion, die dargestellt werden soll, von 0 bis 60. Der Wert kann eine ganze Zahl wie 13 oder eine Bruchzahl wie 13,123 sein. Wenn das Argument sec gleich 60 ist, wird das Sekundenfeld auf 0 und 1 Minute zum letzten Zeitstempel hinzugefügt. Erforderlich beim Erstellen von Zeitstempeln aus einzelnen Komponenten. Muss mit Jahren, Monaten, Tagen, Stunden und Min. verwendet werden.
timezone pyspark.sql.Column oder str Wahlfrei. Der Zeitzonenbezeichner. Beispiel: CET, UTC und etc.
date pyspark.sql.Column oder str Das zu darstellende Datum im gültigen DATUMsformat. Erforderlich beim Erstellen von Zeitstempeln aus Datums- und Uhrzeitkomponenten. Darf nur mit dem Zeitparameter verwendet werden.
time pyspark.sql.Column oder str Die Zeit, die im gültigen TIME-Format dargestellt werden soll. Erforderlich beim Erstellen von Zeitstempeln aus Datums- und Uhrzeitkomponenten. Darf nur mit dem Datumsparameter verwendet werden.

Rückkehr

pyspark.sql.Column: Eine neue Spalte, die einen Zeitstempel oder NULL enthält, wenn ein Fehler auftritt.

Examples

Beispiel 1: Zeitstempel aus Jahren, Monaten, Tagen, Stunden, Minen, Sek. und Zeitzone erstellen.

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                             |
+----------------------------------------------------+

Beispiel 2: Zeitstempel von Jahren, Monaten, Tagen, Stunden, Minen und Sek. (ohne Zeitzone).

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                               |
+------------------------------------------------------+

Beispiel 3: Festlegen des Zeitstempels von Datum und Uhrzeit mit Zeitzone.

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                 |
+----------------------------------------+

Beispiel 4: Festlegen des Zeitstempels von Datum und Uhrzeit (ohne Zeitzone).

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       |
+------------------------------+

Beispiel 5: Gibt NULL für ungültige Eingaben zurück.

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                                                  |
+------------------------------------------------------+