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