ウィンドウ
タイムスタンプ指定列を指定して、行を 1 つ以上の時間ウィンドウに分割します。ウィンドウの開始は包括的ですが、ウィンドウの終了は排他的です。例:12:05 はウィンドウ[12:05,12:10)にはありますが、 [12:00,12:05)には存在しません。Windows はマイクロ秒の精度をサポートできます。月順のWindowsはサポートされていません。
時間列はpyspark.sql.types.TimestampTypeである必要があります。
期間は文字列として提供されます。例:「1秒」、「1日12時間」、「2分」。有効
間隔文字列は、「週」、「日」、「時間」、「分」、「秒」、「ミリ秒」、「マイクロ秒」です。slideDurationが指定されていない場合、ウィンドウはタンブリング ウィンドウになります。
startTimeは1970年1月1日00:00:00 UTCからのオフセットで、
ウィンドウ間隔。例えば、15分ごとに開始する1時間ごとのタンブリングウィンドウを作成するには
1時間過ぎ、例:12:15-13:15、13:15-14:15... startTime 15 minutesとして指定します。
出力列は、デフォルトでは「window」という構造体になり、ネストされた列は「start」になります。
および 'end' で、 'start' と 'end' はpyspark.sql.types.TimestampTypeになります。
対応する Databricks SQL 関数については、 windowグループ化式を参照してください。
構文
from pyspark.databricks.sql import functions as dbf
dbf.window(timeColumn=<timeColumn>, windowDuration=<windowDuration>, slideDuration=<slideDuration>, startTime=<startTime>)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| 時間によるウィンドウ処理のタイムスタンプとして使用する列または式。時間列は TimestampType または TimestampNTZType である必要があります。 |
|
| ウィンドウの幅を指定する文字列、例: |
|
|
|
|
| ウィンドウ間隔を開始する 1970-01-01 00:00:00 UTC を基準としたオフセット。例えば、毎時15分から始まる時間ごとのタンブリングウィンドウを作成するには、12:15-13:15、13:15-14:15... |
戻り値
pyspark.sql.Column: コンピュート結果の列。
例
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()