使用定义的分区创建一个 WindowSpec 。
Syntax
Window.partitionBy(*cols)
参数
| 参数 | 类型 | 说明 |
|---|---|---|
cols |
str、Column 或 list | 列或表达式的名称。 |
退货
WindowSpec
示例
from pyspark.sql import Window, functions as sf
df = spark.createDataFrame(
[(1, "a"), (1, "a"), (2, "a"), (1, "b"), (2, "b"), (3, "b")], ["id", "category"])
# Show row number ordered by id in each category partition.
window = Window.partitionBy("category").orderBy("id")
df.withColumn("row_number", sf.row_number().over(window)).show()
# +---+--------+----------+
# | id|category|row_number|
# +---+--------+----------+
# | 1| a| 1|
# | 1| a| 2|
# | 2| a| 3|
# | 1| b| 1|
# | 2| b| 2|
# | 3| b| 3|
# +---+--------+----------+