Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vytvořte časové razítko z polí roky, měsíce, dny, hodiny, miny, sekundy a (volitelné) časové pásmo. Případně můžete vytvořit časové razítko z polí data, času a (volitelného) časového pásma. Datový typ výsledku je konzistentní s hodnotou konfigurace spark.sql.timestampType. Pokud je konfigurace spark.sql.ansi.enabled false, vrátí funkce hodnotu NULL pro neplatné vstupy. Jinak se místo toho vyvolá chyba.
Odpovídající funkci SQL Databricks vizte funkcemake_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>)
Parametry
| Parameter | Typ | Description |
|---|---|---|
years |
pyspark.sql.Column nebo str |
Rok, který má představovat, od 1 do 9999. Vyžaduje se při vytváření časových razítek z jednotlivých komponent. Musí se používat s měsíci, dny, hodinami, minutami a sekundami. |
months |
pyspark.sql.Column nebo str |
Měsíc v roce, který má představovat, od 1 (leden) do 12 (prosinec). Vyžaduje se při vytváření časových razítek z jednotlivých komponent. Musí se používat s roky, dny, hodinami, minutami a sekundami. |
days |
pyspark.sql.Column nebo str |
Den v měsíci, který má představovat, od 1 do 31. Vyžaduje se při vytváření časových razítek z jednotlivých komponent. Musí se používat s roky, měsíci, hodinami, minami a sek. |
hours |
pyspark.sql.Column nebo str |
Hodina dne, která se má znázorňovat, od 0 do 23. Vyžaduje se při vytváření časových razítek z jednotlivých komponent. Musí se používat s roky, měsíci, dny, miny a sek. |
mins |
pyspark.sql.Column nebo str |
Minuta hodina, která se má znázorňovat, od 0 do 59. Vyžaduje se při vytváření časových razítek z jednotlivých komponent. Musí se používat s roky, měsíci, dny, hodinami a sek. |
secs |
pyspark.sql.Column nebo str |
Druhá minuta a její mikro-zlomek, které představují, od 0 do 60. Hodnota může být celé číslo jako 13 nebo zlomek jako 13,123. Pokud se argument sekund rovná 60, pole sekund se nastaví na 0 a 1 minutu se přidá do konečného časového razítka. Vyžaduje se při vytváření časových razítek z jednotlivých komponent. Musí se používat s roky, měsíci, dny, hodinami a minutami. |
timezone |
pyspark.sql.Column nebo str |
Optional. Identifikátor časového pásma. Například CET, UTC a atd. |
date |
pyspark.sql.Column nebo str |
Datum, které má představovat, v platném formátu DATUM. Vyžaduje se při vytváření časových razítek z komponent data a času. Musí se používat pouze s časovým parametrem. |
time |
pyspark.sql.Column nebo str |
Čas, který má představovat platný formát TIME. Vyžaduje se při vytváření časových razítek z komponent data a času. Je nutné použít pouze s parametrem date. |
Návraty
pyspark.sql.Column: Nový sloupec, který obsahuje časové razítko.
Examples
Příklad 1: Časové razítko z let, měsíců, dnů, hodin, min, sekund a časového pásma
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 |
+----------------------------------------------------+
Příklad 2: Časové razítko z let, měsíců, dnů, hodin, min a sekund (bez časového pásma).
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 |
+--------------------------------------------------+
Příklad 3: Časové razítko z data a času pomocí časového pásma
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 |
+------------------------------------+
Příklad 4: Nastavení časového razítka z data a času (bez časového pásma)
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 |
+--------------------------+