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


Python pyspark Window.rowsBetween用法及代码示例


本文简要介绍 pyspark.sql.Window.rowsBetween 的用法。

用法:

static Window.rowsBetween(start, end)

创建一个WindowSpec,定义了从start(含)到end(含)的帧边界。

startend 都是当前行的相对位置。例如,“0” 表示“current row”,而“-1” 表示当前行之前的行,“5” 表示当前行之后的第五行。

我们建议用户使用 Window.unboundedPrecedingWindow.unboundedFollowingWindow.currentRow 来指定特殊边界值,而不是直接使用整数值。

基于行的边界基于分区内行的位置。偏移量表示当前行上方或下方的行数,当前行的帧开始或结束。例如,给定一个基于行的滑动框架,其下限偏移量为 -1,上限偏移量为 +2。索引为 5 的行的框架范围为索引 4 到索引 7。

2.1.0 版中的新函数。

参数

startint

边界开始,包括在内。如果这是 Window.unboundedPreceding 或任何小于或等于 -9223372036854775808 的值,则该帧是无界的。

endint

边界结束,包括在内。如果这是 Window.unboundedFollowing 或任何大于或等于 9223372036854775807 的值,则该帧是无界的。

例子

>>> from pyspark.sql import Window
>>> from pyspark.sql import functions as func
>>> from pyspark.sql import SQLContext
>>> sc = SparkContext.getOrCreate()
>>> sqlContext = SQLContext(sc)
>>> tup = [(1, "a"), (1, "a"), (2, "a"), (1, "b"), (2, "b"), (3, "b")]
>>> df = sqlContext.createDataFrame(tup, ["id", "category"])
>>> window = Window.partitionBy("category").orderBy("id").rowsBetween(Window.currentRow, 1)
>>> df.withColumn("sum", func.sum("id").over(window)).sort("id", "category", "sum").show()
+---+--------+---+
| id|category|sum|
+---+--------+---+
|  1|       a|  2|
|  1|       a|  3|
|  1|       b|  3|
|  2|       a|  2|
|  2|       b|  5|
|  3|       b|  3|
+---+--------+---+

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.sql.Window.rowsBetween。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。