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=SparkContext。getOrCreate()> > >sqlContext=SQLContext(sc)> > >錘頭=((1,“一個”),(1,“一個”),(2,“一個”),(1,“b”),(2,“b”),(3,“b”)]> > >df=sqlContext。createDataFrame(錘頭,(“id”,“類別”])> > >窗口=窗口。partitionBy(“類別”)。orderBy(“id”)。rangeBetween(窗口。currentRow,1)> > >df。withColumn(“和”,函數。總和(“id”)。在(窗口))。排序(“id”,“類別”)。顯示()+ - - - + - - - - - - - - - - + - - - +| |和| |類別id+ - - - + - - - - - - - - - - + - - - +| 1 | | 4 || 1 | | 4 || 1 | 2 | 3 || 2 | | 2 || 2 | b | 5 || 3 | b | 3 |+ - - - + - - - - - - - - - - + - - - +