pyspark.sql.functions.window

pyspark.sql.functions。 窗口 ( timeColumn:ColumnOrName,windowDuration:str,slideDuration:可選(str]=沒有一個,開始時間:可選(str]=沒有一個 )→pyspark.sql.column.Column

Bucketize行成一個或更多的時間窗口指定時間戳列。窗口開始包容但窗口結束獨家,例如12:05將在窗口[12:05,12:10)而不是[12:05,12:00)。Windows可以支持微秒級精度。不支持Windows的幾個月。

必須的時間列pyspark.sql.types.TimestampType

持續時間為字符串,例如“1秒”、“1天12小時”,“2分鍾”。有效區間字符串是“周”,“天”,“小時”,“分”,“秒”,的毫秒、微秒。如果slideDuration不提供,windows將暴跌。

開始時間是抵消對1970-01-01就是UTC的窗口時間間隔開始。例如,為了每小時暴跌窗口開始15分鍾過去了,例如12:15-13:15,13:15-14:15…提供開始時間作為15分鍾

輸出列將是一個嵌套結構稱為“窗口”默認列‘開始’和‘結束’,‘開始’和‘結束’的位置pyspark.sql.types.TimestampType

參數
timeColumn

列或表達式使用時間作為窗口的時間戳。必須TimestampType或TimestampNTZType時間列。

windowDuration str

一個字符串指定窗口的寬度,如。10分鍾,1秒。檢查org.apache.spark.unsafe.types.CalendarInterval在有效期間標識符。注意,時間是一個固定的時間長度,隨著時間的推移,不根據日曆。例如,1天總是意味著86400000毫秒,而不是一個日曆天。

slideDuration str,可選

一個新的窗口將每個生成slideDuration。必須小於或等於windowDuration。檢查org.apache.spark.unsafe.types.CalendarInterval在有效期間標識符。這個時間同樣是絕對的,不改變根據日曆。

開始時間 str,可選

的偏移量對1970-01-01就是UTC窗口時間間隔開始。例如,為了每小時暴跌窗口開始15分鍾過去了,例如12:15-13:15,13:15-14:15…提供開始時間作為15分鍾

例子

> > >進口datetime> > >df=火花createDataFrame(((datetimedatetime(2016年,3,11,9,0,7),1)),)toDF(“日期”,“val”)> > >w=dfgroupBy(窗口(“日期”,“5秒”))gg(總和(“val”)別名(“和”))> > >w選擇(w窗口開始(“字符串”)別名(“開始”),w窗口結束(“字符串”)別名(“結束”),“和”)收集()行(開始= 2016-03-11 09:00:05,結束= 2016-03-11 09:00:10,金額= 1))