Megosztás:


ablak

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()