pyspark.sql.Window.rangeBetween
的用法。用法:
static Window.rangeBetween(start, end)
创建一个
WindowSpec
,定义了从start
(含)到end
(含)的帧边界。start
和end
都是相对于当前行的。例如“0”表示“current row”,“-1”表示当前行前一关,“5”表示当前行后五关。我们建议用户使用
Window.unboundedPreceding
、Window.unboundedFollowing
和Window.currentRow
来指定特殊边界值,而不是直接使用整数值。基于范围的边界基于 ORDER BY 表达式的实际值。偏移量用于更改 ORDER BY 表达式的值,例如,如果当前 ORDER BY 表达式的值为 10 并且下限偏移量为 -3,则当前行的结果下限将为 10 - 3 = 7. 然而,这对 ORDER BY 表达式施加了许多限制:只能有一个表达式,并且该表达式必须具有数字数据类型。当偏移量不受限制时可能会出现异常,因为不需要修改值,在这种情况下,允许使用多个非数字 ORDER BY 表达式。
2.1.0 版中的新函数。
- start:int
边界开始,包括在内。如果这是
Window.unboundedPreceding
或小于或等于 max(-sys.maxsize, -9223372036854775808) 的任何值,则该帧是无界的。- end:int
边界结束,包括在内。如果这是
Window.unboundedFollowing
或任何大于或等于 min(sys.maxsize, 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").rangeBetween(Window.currentRow, 1) >>> df.withColumn("sum", func.sum("id").over(window)).sort("id", "category").show() +---+--------+---+ | id|category|sum| +---+--------+---+ | 1| a| 4| | 1| a| 4| | 1| b| 3| | 2| a| 2| | 2| b| 5| | 3| b| 3| +---+--------+---+
相关用法
- Python pyspark Window.rowsBetween用法及代码示例
- Python pyspark Window用法及代码示例
- Python pyspark Word2Vec用法及代码示例
- Python pyspark create_map用法及代码示例
- Python pyspark date_add用法及代码示例
- Python pyspark DataFrame.to_latex用法及代码示例
- Python pyspark DataStreamReader.schema用法及代码示例
- Python pyspark MultiIndex.size用法及代码示例
- Python pyspark arrays_overlap用法及代码示例
- Python pyspark Series.asof用法及代码示例
- Python pyspark DataFrame.align用法及代码示例
- Python pyspark Index.is_monotonic_decreasing用法及代码示例
- Python pyspark IsotonicRegression用法及代码示例
- Python pyspark DataFrame.plot.bar用法及代码示例
- Python pyspark DataFrame.to_delta用法及代码示例
- Python pyspark element_at用法及代码示例
- Python pyspark explode用法及代码示例
- Python pyspark MultiIndex.hasnans用法及代码示例
- Python pyspark Series.to_frame用法及代码示例
- Python pyspark DataFrame.quantile用法及代码示例
- Python pyspark Column.withField用法及代码示例
- Python pyspark Index.values用法及代码示例
- Python pyspark Index.drop_duplicates用法及代码示例
- Python pyspark aggregate用法及代码示例
- Python pyspark IndexedRowMatrix.computeGramianMatrix用法及代码示例
注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.sql.Window.rangeBetween。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。