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分鍾。
-
timeColumn
例子
> > >進口datetime> > >df=火花。createDataFrame(…((datetime。datetime(2016年,3,11,9,0,7),1)),…)。toDF(“日期”,“val”)> > >w=df。groupBy(窗口(“日期”,“5秒”))。gg(總和(“val”)。別名(“和”))> > >w。選擇(w。窗口。開始。投(“字符串”)。別名(“開始”),…w。窗口。結束。投(“字符串”)。別名(“結束”),“和”)。收集()行(開始= 2016-03-11 09:00:05,結束= 2016-03-11 09:00:10,金額= 1))