Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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()