müşteri adayı

Window işlevi: Geçerli satırdan sonraki satırlar offset olan ve default geçerli satırdan sonra satırdan offset küçük olan değeri döndürür. Örneğin, bunlardan biri offset pencere bölümünün herhangi bir noktasında bir sonraki satırı döndürür.

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

Sözdizimi

from pyspark.sql import functions as sf

sf.lead(col, offset=1, default=None)

Parametreler

Parametre Türü Description
col pyspark.sql.Column veya sütun adı Sütun veya ifadenin adı.
offset int, isteğe bağlı Genişletecek satır sayısı. Varsayılan değer 1'dir.
default optional Varsayılan değer.

İade

pyspark.sql.Column: değerini temel offsetalan geçerli satırdan sonraki değerdir.

Örnekler

Örnek 1: Sonraki değeri almak için müşteri adayı kullanma

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("next_value", sf.lead("c2").over(w)).show()
+---+---+----------+
| c1| c2|next_value|
+---+---+----------+
|  a|  1|         2|
|  a|  2|         3|
|  a|  3|      NULL|
|  b|  2|         8|
|  b|  8|      NULL|
+---+---+----------+

Örnek 2: Müşteri adaylarını varsayılan değerle kullanma

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("next_value", sf.lead("c2", 1, 0).over(w)).show()
+---+---+----------+
| c1| c2|next_value|
+---+---+----------+
|  a|  1|         2|
|  a|  2|         3|
|  a|  3|         0|
|  b|  2|         8|
|  b|  8|         0|
+---+---+----------+

Örnek 3: 2 uzaklığı olan müşteri adayını kullanma

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("next_value", sf.lead("c2", 2, -1).over(w)).show()
+---+---+----------+
| c1| c2|next_value|
+---+---+----------+
|  a|  1|         3|
|  a|  2|        -1|
|  a|  3|        -1|
|  b|  2|        -1|
|  b|  8|        -1|
+---+---+----------+