当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。