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.
Vygeneruje okno relace s časovým razítkem určujícím sloupec.
Okno relace je jedním z dynamických oken, což znamená, že délka okna se liší podle zadaných vstupů. Délka okna relace je definována jako "časové razítko posledního vstupu relace + doba trvání mezery", takže pokud jsou nové vstupy svázané s aktuálním oknem relace, lze koncový čas okna relace rozšířit podle nových vstupů.
Systém Windows může podporovat přesnost mikrosekund. Windows v pořadí měsíců se nepodporují.
U streamovacího dotazu můžete funkci current_timestamp použít k vygenerování oken v době zpracování.
gapDuration 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'.
Může se jednat také o sloupec, který se dá vyhodnotit tak, aby se doba trvání dynamicky vyhodnocovala na základě vstupního řádku.
Výstupní sloupec bude ve výchozím nastavení strukturou s názvem "session_window" s vnořenými sloupci "start" a "end", kde "start" a "end" bude .pyspark.sql.types.TimestampType
Odpovídající funkci SQL Databricks najdete v tématu session_window seskupování výrazů.
Syntaxe
from pyspark.sql import functions as dbf
dbf.session_window(timeColumn=<timeColumn>, gapDuration=<gapDuration>)
Parametry
| Parameter | Typ | Description |
|---|---|---|
timeColumn |
pyspark.sql.Column nebo str |
Název sloupce nebo sloupec, které se mají použít jako časové razítko pro časové intervaly. Časový sloupec musí být TimestampType nebo TimestampNTZType. |
gapDuration |
pyspark.sql.Column nebo literal string |
Řetězcový literál pythonu nebo sloupec určující časový limit relace. Může to být statická hodnota, například 10 minutes, 1 secondnebo výraz/UDF, který určuje dobu trvání mezery dynamicky na základě vstupního řádku. |
Návraty
pyspark.sql.Column: sloupec pro vypočítané výsledky.
Examples
from pyspark.sql import functions as dbf
df = spark.createDataFrame([('2016-03-11 09:00:07', 1)], ['dt', 'v'])
df2 = df.groupBy(dbf.session_window('dt', '5 seconds')).agg(dbf.sum('v'))
df2.show(truncate=False)
df2.printSchema()