當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R SparkR rangeBetween用法及代碼示例


說明:

定義幀邊界,從start(含)到end(含)。

用法:

rangeBetween(x, start, end)

## S4 method for signature 'WindowSpec,numeric,numeric'
rangeBetween(x, start, end)

參數:

  • x 一個窗口規範
  • start 邊界開始,包括在內。如果這是最小的 long 值,則該幀是無界的。
  • end 邊界結束,包括在內。如果這是最大的 long 值,則該幀是無界的。

細節:

startend 都是相對於當前行的。例如"0"表示"current row","-1"表示當前行前一關,"5"表示當前行後五關。

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

基於範圍的邊界基於 ORDER BY 表達式的實際值。偏移量用於更改 ORDER BY 表達式的值,例如,如果當前 ORDER BY 表達式的值為 10 並且下限偏移量為 -3,則當前行的結果下限將為 10 - 3 = 7. 然而,這對 ORDER BY 表達式施加了許多限製:隻能有一個表達式,並且該表達式必須具有數字數據類型。當偏移量不受限製時可能會出現異常,因為不需要修改值,在這種情況下,允許使用多個非數字 ORDER BY 表達式。

返回:

一個窗口規範

注意:

rangeBetween 自 2.0.0 起

例子:

id <- c(rep(1, 3), rep(2, 3), 3)
  desc <- c('New', 'New', 'Good', 'New', 'Good', 'Good', 'New')
  df <- data.frame(id, desc)
  df <- createDataFrame(df)
  w1 <- orderBy(windowPartitionBy('desc'), df$id)
  w2 <- rangeBetween(w1, 0, 3)
  df1 <- withColumn(df, "sum", over(sum(df$id), w2))
  head(df1)

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 rangeBetween。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。