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.
Rozdělte řádky do jednoho nebo více časových oken zadaných časovým razítkem určujícím sloupec. Začátek okna je inkluzivní, ale konce okna jsou exkluzivní, například 12:05 bude v okně [12:05,12:10) , ale ne v [12:00,12:05). Systém Windows může podporovat přesnost mikrosekund. Windows v pořadí měsíců se nepodporují.
Časový sloupec musí být .pyspark.sql.types.TimestampType
Doba trvání se poskytuje jako řetězce, například 1 sekunda, 1 den 12 hodin, 2 minuty. Platné řetězce intervalů jsou "week", "day", 'hour', 'minute', 'second', 'milisekund', 'microsecond'.
Pokud není slideDuration k dispozici, okna budou přeskakující okna.
Počáteční čas je posun vzhledem k 1970-01-01-01 00:00:00 UTC, se kterým se mají spustit intervaly. Například pokud chcete mít hodinové přeskakující okna, která začínají 15 minut po hodině, například 12:15-13:15, 13:15-14:15... poskytnout startTime jako 15 minutes.
Výstupní sloupec bude ve výchozím nastavení strukturou s názvem "window" s vnořenými sloupci "start" a "end", kde "start" a "end" bude mít pyspark.sql.types.TimestampTypehodnotu .
Odpovídající funkci SQL Databricks najdete v tématu window seskupování výrazů.
Syntaxe
from pyspark.sql import functions as dbf
dbf.window(timeColumn=<timeColumn>, windowDuration=<windowDuration>, slideDuration=<slideDuration>, startTime=<startTime>)
Parametry
| Parameter | Typ | Description |
|---|---|---|
timeColumn |
pyspark.sql.Column nebo str |
Sloupec nebo výraz, které se mají použít jako časové razítko pro časové intervaly. Časový sloupec musí být TimestampType nebo TimestampNTZType. |
windowDuration |
literal string |
Řetězec určující šířku okna, například 10 minutes, 1 second. Zkontrolujte org.apache.spark.unsafe.types.CalendarInterval platné identifikátory doby trvání. Všimněte si, že doba trvání je pevná doba a v průběhu času se v závislosti na kalendáři nijak neliší. Například 1 day vždy znamená 86 400 000 milisekund, nikoli kalendářní den. |
slideDuration |
literal string, optional |
Každé okno se vygeneruje slideDuration. Musí být menší než nebo rovno hodnotě windowDuration. Zkontrolujte org.apache.spark.unsafe.types.CalendarInterval platné identifikátory doby trvání. Tato doba trvání je stejně absolutní a liší se v závislosti na kalendáři. |
startTime |
literal string, optional |
Posun s ohledem na 1970-01-01 00:00:00 UTC, se kterým se mají spustit intervaly. Například pokud chcete mít hodinové přeskakující okna, která začínají 15 minut po hodině, například 12:15-13:15, 13:15-14:15... poskytnout startTime jako 15 minutes. |
Návraty
pyspark.sql.Column: sloupec pro vypočítané výsledky.
Examples
import datetime
from pyspark.sql import functions as dbf
df = spark.createDataFrame([(datetime.datetime(2016, 3, 11, 9, 0, 7), 1)], ['dt', 'v'])
df2 = df.groupBy(dbf.window('dt', '5 seconds')).agg(dbf.sum('v'))
df2.show(truncate=False)
df2.printSchema()