pyspark.sql.Window.rangeBetween

靜態 窗口。 rangeBetween ( 開始:int,結束:int )→pyspark.sql.window.WindowSpec

創建一個WindowSpec與幀邊界定義,開始(包容)結束(包容)。

這兩個開始結束從當前行是相對的。例如,“0”意味著“當前行”,而“1”意味著一個在當前行,“5”是指五後當前行。

我們建議用戶使用Window.unboundedPreceding,Window.unboundedFollowing,Window.currentRow指定特殊的邊界值,而不是直接使用積分值。

基於範圍邊界是基於訂單的實際值的表達式(s)。一個偏移量是用來改變ORDER BY表達式的值,例如,如果當前的ORDER BY表達式的值為10,下界抵消3,由此產生的下界為當前行將10 - 3 = 7。然而這將限製訂單的數量表達式:隻能有一個表達式,這個表達式必須有一個數值數據類型。異常時可以抵消是無界的,因為不需要修改值,在這種情況下允許多個和非數字順序的表達。

參數
開始 int

邊界開始,包容。如果這是框架是無界的Window.unboundedPreceding,或任何值小於或等於max (sys。最大尺寸,-9223372036854775808)。

結束 int

邊界,包容性。如果這是框架是無界的Window.unboundedFollowing,或任何價值大於或等於最小(sys。最大尺寸,9223372036854775807)。

例子

> > >pyspark.sql進口窗口> > >pyspark.sql進口功能作為函數> > >pyspark.sql進口SQLContext> > >sc=SparkContextgetOrCreate()> > >sqlContext=SQLContext(sc)> > >錘頭=((1,“一個”),(1,“一個”),(2,“一個”),(1,“b”),(2,“b”),(3,“b”)]> > >df=sqlContextcreateDataFrame(錘頭,(“id”,“類別”])> > >窗口=窗口partitionBy(“類別”)orderBy(“id”)rangeBetween(窗口currentRow,1)> > >dfwithColumn(“和”,函數總和(“id”)(窗口))排序(“id”,“類別”)顯示()+ - - - + - - - - - - - - - - + - - - +| |和| |類別id+ - - - + - - - - - - - - - - + - - - +| 1 | | 4 || 1 | | 4 || 1 | 2 | 3 || 2 | | 2 || 2 | b | 5 || 3 | b | 3 |+ - - - + - - - - - - - - - - + - - - +