nth_value

Window işlevi: Pencere çerçevesinin offsetth satırı olan değeri (1'den sayarak) ve null pencere çerçevesinin boyutu satırdan offset küçükse döndürür.

True olarak ayarlandığında gördüğü offset null olmayan th değerini döndürürignoreNulls. Tüm değerler null ise null döndürülür.

Bu, SQL'deki nth_value işlevine eşdeğerdir.

Sözdizimi

from pyspark.sql import functions as sf

sf.nth_value(col, offset, ignoreNulls=False)

Parametreler

Parametre Türü Description
col pyspark.sql.Column veya sütun adı Sütun veya ifadenin adı.
offset int Değer olarak kullanılacak satır sayısı.
ignoreNulls bool, isteğe bağlı Kullanılacak satırın belirlenmesinde N. değerin null atlayması gerektiğini gösterir.

İade

pyspark.sql.Column: n. satırın değeri.

Örnekler

Örnek 1: Pencere çerçevesindeki ilk değeri alma

from pyspark.sql import functions as sf
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("nth_value", sf.nth_value("c2", 1).over(w)).show()
+---+---+---------+
| c1| c2|nth_value|
+---+---+---------+
|  a|  1|        1|
|  a|  2|        1|
|  a|  3|        1|
|  b|  2|        2|
|  b|  8|        2|
+---+---+---------+

Örnek 2: Pencere çerçevesinde ikinci değeri alma

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