pyspark.sql.functions.window
的用法。用法:
pyspark.sql.functions.window(timeColumn, windowDuration, slideDuration=None, startTime=None)
給定時間戳指定列,將行分桶到一個或多個時間窗口中。窗口開始是包含的,但窗口結束是排除的,例如12:05 將在窗口 [12:05,12:10) 中,但不在 [12:00,12:05) 中。 Windows 可以支持微秒精度。不支持以月為單位的 Windows。
時間列必須是
pyspark.sql.types.TimestampType
。持續時間以字符串形式提供,例如“1 秒”、“1 天 12 小時”、“2 分鍾”。有效的間隔字符串是‘week’, ‘day’, ‘hour’, ‘minute’, ‘second’, ‘millisecond’, ‘microsecond’。如果未提供
slideDuration
,則窗口將是翻滾窗口。startTime 是相對於 1970-01-01 00:00:00 UTC 開始窗口間隔的偏移量。例如,為了讓每小時滾動的窗口在整點後 15 分鍾開始,例如12:15-13:15, 13:15-14:15… 提供
startTime
作為15 minutes
。默認情況下,輸出列將是一個名為 ‘window’ 的結構,其中包含嵌套列 ‘start’ 和 ‘end’,其中 ‘start’ 和 ‘end’ 將屬於
pyspark.sql.types.TimestampType
。2.0.0 版中的新函數。
- timeColumn:Column
用作按時間窗口化的時間戳的列或表達式。時間列必須是 TimestampType。
- windowDuration:str
指定窗口寬度的字符串,例如
10 minutes
、1 second
。檢查org.apache.spark.unsafe.types.CalendarInterval
的有效持續時間標識符。請注意,持續時間是固定的時間長度,並且不會根據日曆隨時間變化。例如,1 day
始終表示 86,400,000 毫秒,而不是日曆日。- slideDuration:str,可選
每個
slideDuration
都會生成一個新窗口。必須小於或等於windowDuration
。檢查org.apache.spark.unsafe.types.CalendarInterval
以獲取有效的持續時間標識符。這個持續時間同樣是絕對的,不會根據日曆而變化。- startTime:str,可選
相對於 1970-01-01 00:00:00 UTC 的偏移量,用於啟動窗口間隔。例如,為了讓每小時滾動的窗口在整點後 15 分鍾開始,例如12:15-13:15, 13:15-14:15… 提供
startTime
作為15 minutes
。
參數:
例子:
>>> df = spark.createDataFrame([("2016-03-11 09:00:07", 1)]).toDF("date", "val") >>> w = df.groupBy(window("date", "5 seconds")).agg(sum("val").alias("sum")) >>> w.select(w.window.start.cast("string").alias("start"), ... w.window.end.cast("string").alias("end"), "sum").collect() [Row(start='2016-03-11 09:00:05', end='2016-03-11 09:00:10', sum=1)]
相關用法
- Python pyspark weekofyear用法及代碼示例
- Python pyspark create_map用法及代碼示例
- Python pyspark date_add用法及代碼示例
- Python pyspark DataFrame.to_latex用法及代碼示例
- Python pyspark DataStreamReader.schema用法及代碼示例
- Python pyspark MultiIndex.size用法及代碼示例
- Python pyspark arrays_overlap用法及代碼示例
- Python pyspark Series.asof用法及代碼示例
- Python pyspark DataFrame.align用法及代碼示例
- Python pyspark Index.is_monotonic_decreasing用法及代碼示例
- Python pyspark IsotonicRegression用法及代碼示例
- Python pyspark DataFrame.plot.bar用法及代碼示例
- Python pyspark DataFrame.to_delta用法及代碼示例
- Python pyspark element_at用法及代碼示例
- Python pyspark explode用法及代碼示例
- Python pyspark MultiIndex.hasnans用法及代碼示例
- Python pyspark Series.to_frame用法及代碼示例
- Python pyspark DataFrame.quantile用法及代碼示例
- Python pyspark Column.withField用法及代碼示例
- Python pyspark Index.values用法及代碼示例
- Python pyspark Index.drop_duplicates用法及代碼示例
- Python pyspark aggregate用法及代碼示例
- Python pyspark IndexedRowMatrix.computeGramianMatrix用法及代碼示例
- Python pyspark DecisionTreeClassifier用法及代碼示例
- Python pyspark Index.value_counts用法及代碼示例
注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.sql.functions.window。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。