pyspark.sql.functions.ntile

pyspark.sql.functions. ntile ( n : int ) → pyspark.sql.column.Column [source]

窗口函数:返回有序窗口分区中的ntile组ID(从1到 n ,包含 n )。例如,如果 n 是4,第一季度的行将获得值1,第二季度将获得2,第三季度将获得3,最后一季度将获得4。

这等同于SQL中的NTILE函数。

新增于版本 1.4.0。

在版本 3.4.0 中更改: 支持 Spark Connect。

Parameters
n int

一个整数

Returns
Column

分组ID。

示例

>>> from pyspark.sql import Window
>>> df = spark.createDataFrame([("a", 1),
...                             ("a", 2),
...                             ("a", 3),
...                             ("b", 8),
...                             ("b", 2)], ["c1", "c2"])
>>> df.show()
+---+---+
| c1| c2|
+---+---+
|  a|  1|
|  a|  2|
|  a|  3|
|  b|  8|
|  b|  2|
+---+---+
>>> w = Window.partitionBy("c1").orderBy("c2")
>>> df.withColumn("ntile", ntile(2).over(w)).show()
+---+---+-----+
| c1| c2|ntile|
+---+---+-----+
|  a|  1|    1|
|  a|  2|    1|
|  a|  3|    2|
|  b|  2|    1|
|  b|  8|    2|
+---+---+-----+