Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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|
+---+---+----------+