Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Bucketize rijen in één of meer tijdvensters op basis van een kolom die een tijdstempel specificeert. Het begin van het venster is inclusief, maar de venstereinden zijn exclusief, bijvoorbeeld 12:05 uur in het venster [12:05,12:10) , maar niet in [12:00,12:05). Windows kan microsecondenprecisie ondersteunen. Windows in de volgorde van maanden wordt niet ondersteund.
De tijdkolom moet van pyspark.sql.types.TimestampType.
De duur wordt opgegeven als tekenreeksen, bijvoorbeeld '1 seconde', '1 dag 12 uur', '2 minuten'. Geldige intervaltekenreeksen zijn 'week', 'dag', 'uur', 'minuut', 'seconde', 'milliseconden', 'microseconden'.
Als het slideDuration niet is opgegeven, zijn de vensters tumblingvensters.
De startTime is de offset met betrekking tot 1970-01-01 00:00:00 UTC waarmee intervallen van het venster moeten worden gestart. Als u bijvoorbeeld elk uur tumblingvensters wilt hebben die 15 minuten voorbij het uur beginnen, bijvoorbeeld 12:15-13:15, 13:15-14:15... bieden startTime als 15 minutes.
De uitvoerkolom is standaard een struct genaamd 'window' met de geneste kolommen 'start' en 'end', waarbij 'start' en 'end' van zijn pyspark.sql.types.TimestampType.
Zie de groeperingsexpressie voor de bijbehorende Databricks SQL-functiewindow.
Syntaxis
from pyspark.databricks.sql import functions as dbf
dbf.window(timeColumn=<timeColumn>, windowDuration=<windowDuration>, slideDuration=<slideDuration>, startTime=<startTime>)
Parameterwaarden
| Kenmerk | Typologie | Description |
|---|---|---|
timeColumn |
pyspark.sql.Column of str |
De kolom of de expressie die moet worden gebruikt als tijdstempel voor vensters op tijd. De tijdkolom moet van TimestampType of TimestampNTZType zijn. |
windowDuration |
literal string |
Een tekenreeks die de breedte van het venster aangeeft, bijvoorbeeld 10 minutes. 1 second Controleer op org.apache.spark.unsafe.types.CalendarInterval geldige duur-id's. Houd er rekening mee dat de duur een vaste tijdsduur is en niet in de loop van de tijd varieert volgens een kalender. Betekent bijvoorbeeld 1 day altijd 86.400.000 milliseconden, niet een kalenderdag. |
slideDuration |
literal string, optional |
Er wordt elke slideDurationdag een nieuw venster gegenereerd. Moet kleiner zijn dan of gelijk zijn aan de windowDuration. Controleer op org.apache.spark.unsafe.types.CalendarInterval geldige duur-id's. Deze duur is eveneens absoluut en verschilt niet afhankelijk van een kalender. |
startTime |
literal string, optional |
De offset met betrekking tot 1970-01-01 00:00:00 UTC waarmee de tijdsintervallen van het venster moeten worden gestart. Als u bijvoorbeeld elk uur tumblingvensters wilt hebben die 15 minuten voorbij het uur beginnen, bijvoorbeeld 12:15-13:15, 13:15-14:15... bieden startTime als 15 minutes. |
Retouren
pyspark.sql.Column: de kolom voor berekende resultaten.
Voorbeelden
import datetime
from pyspark.databricks.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()