Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Sorok gyűjtőbe helyezése egy vagy több időablakba egy időbélyeget tartalmazó oszlop alapján. Az ablakindítások befogadóak, de az ablakvégek kizárólagosak, például 12:05 lesz az ablakban, de nem az [12:00,12:05)ablakban[12:05,12:10). A Windows támogatja a mikroszekundumos pontosságot. A hónapok sorrendjében lévő Windows nem támogatott.
Az időoszlopnak a következőnek kell lennie pyspark.sql.types.TimestampType: .
Az időtartamok sztringként vannak megadva, például "1 másodperc", "1 nap 12 óra", "2 perc". Az érvényes intervallumsztringek a következők: "hét", "nap", "óra", "perc", "második", "ezredmásodperc", "mikroszekundum".
Ha nincs slideDuration megadva, az ablakok lesüllyednek.
A startTime az eltolás az 1970-01-01 00:00:00 UTC értékhez képest, amellyel az időintervallumokat el kell kezdeni. Például annak érdekében, hogy az óránkénti ugróablakok 15 perccel később kezdődjenek, például: 12:15-13:15, 13:15-14:15... adja meg startTime a .15 minutes
A kimeneti oszlop alapértelmezés szerint egy "window" nevű szerkezet lesz a beágyazott "start" és "end" oszlopokkal, ahol a "start" és a "end" lesz pyspark.sql.types.TimestampType.
A megfelelő Databricks SQL-függvényhez lásd window a csoportosítási kifejezést.
Szemantika
from pyspark.databricks.sql import functions as dbf
dbf.window(timeColumn=<timeColumn>, windowDuration=<windowDuration>, slideDuration=<slideDuration>, startTime=<startTime>)
Paraméterek
| Paraméter | Típus | Description |
|---|---|---|
timeColumn |
pyspark.sql.Column vagy str |
Az az oszlop vagy kifejezés, amelyet időbélyegként szeretne használni az idő függvényében. Az időoszlopnak TimestampType vagy TimestampNTZType típusúnak kell lennie. |
windowDuration |
literal string |
Egy sztring, amely megadja az ablak szélességét, például 10 minutes: 1 second. Ellenőrizze org.apache.spark.unsafe.types.CalendarInterval az érvényes időtartam-azonosítókat. Vegye figyelembe, hogy az időtartam rögzített időtartam, és a naptár szerint nem változik az idő függvényében. Például 1 day mindig 86 400 000 ezredmásodpercet jelent, nem naptári napot. |
slideDuration |
literal string, optional |
A rendszer minden slideDurationesetben új ablakot hoz létre. Kisebbnek vagy egyenlőnek kell lennie a windowDuration. Ellenőrizze org.apache.spark.unsafe.types.CalendarInterval az érvényes időtartam-azonosítókat. Ez az időtartam ugyanígy abszolút, és naptár szerint nem változik. |
startTime |
literal string, optional |
Az eltolás az 1970-01-01 00:00:00 UTC értékre vonatkozóan, amellyel az ablakintervallumokat el kell kezdeni. Például annak érdekében, hogy az óránkénti ugróablakok 15 perccel később kezdődjenek, például: 12:15-13:15, 13:15-14:15... adja meg startTime a .15 minutes |
Visszatérítések
pyspark.sql.Column: a számított eredmények oszlopa.
Példák
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()