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