Bagikan melalui


jendela

Mengkategorikan baris ke dalam satu atau beberapa jendela waktu berdasarkan kolom yang ditentukan oleh penanda waktu. Mulai jendela bersifat inklusif tetapi ujung jendela bersifat eksklusif, misalnya 12:05 akan berada di jendela [12:05,12:10) tetapi tidak di [12:00,12:05). Windows dapat mendukung presisi mikrosekond. Windows dalam urutan bulan tidak didukung.

Kolom waktu harus dari pyspark.sql.types.TimestampType.

Durasi disediakan sebagai string, misalnya '1 detik', '1 hari 12 jam', '2 menit'. String interval yang valid adalah 'week', 'day', 'hour', 'minute', 'second', 'milidetik', 'microsecond'. slideDuration Jika tidak disediakan, jendela akan jatuh jendela.

StartTime adalah offset sehubungan dengan 1970-01-01 00:00:00 UTC untuk memulai interval jendela. Misalnya, untuk memiliki jendela tumbling per jam yang dimulai 15 menit melewati jam, misalnya 12:15-13:15, 13:15-14:15... sediakan startTime sebagai 15 minutes.

Kolom output akan menjadi struct yang disebut 'window' secara default dengan kolom berlapis 'start' dan 'end', di mana 'start' dan 'end' akan menjadi dari pyspark.sql.types.TimestampType.

Untuk fungsi Databricks SQL yang sesuai, lihat window ekspresi pengelompokan.

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.window(timeColumn=<timeColumn>, windowDuration=<windowDuration>, slideDuration=<slideDuration>, startTime=<startTime>)

Parameter-parameternya

Pengaturan Tipe Description
timeColumn pyspark.sql.Column atau str Kolom atau ekspresi yang akan digunakan sebagai tanda waktu untuk jendela menurut waktu. Kolom waktu harus dari TimestampType atau TimestampNTZType.
windowDuration literal string String yang menentukan lebar jendela, misalnya 10 minutes, 1 second. Periksa org.apache.spark.unsafe.types.CalendarInterval pengidentifikasi durasi yang valid. Perhatikan bahwa durasi adalah durasi waktu tetap, dan tidak bervariasi dari waktu ke waktu sesuai dengan kalender. Misalnya, 1 day selalu berarti 86.400.000 milidetik, bukan hari kalender.
slideDuration literal string, optional Jendela baru akan dihasilkan setiap slideDuration. Harus kurang dari atau sama dengan windowDuration. Periksa org.apache.spark.unsafe.types.CalendarInterval pengidentifikasi durasi yang valid. Durasi ini juga absolut, dan tidak bervariasi sesuai dengan kalender.
startTime literal string, optional Offset sehubungan dengan 1970-01-01 00:00:00 UTC untuk memulai interval jendela. Misalnya, untuk memiliki jendela tumbling per jam yang dimulai 15 menit melewati jam, misalnya 12:15-13:15, 13:15-14:15... sediakan startTime sebagai 15 minutes.

Pengembalian Barang

pyspark.sql.Column: kolom untuk hasil komputasi.

Examples

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