Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ablakfüggvény: azt az értéket adja vissza, amely offset az aktuális sor utáni sor, és default ha az aktuális sor után kevesebb offset sor van. Az egyik például offset az ablakpartíció bármely pontján visszaadja a következő sort.
Ez egyenértékű az SQL LEAD függvényével.
Szemantika
from pyspark.sql import functions as sf
sf.lead(col, offset=1, default=None)
Paraméterek
| Paraméter | Típus | Description |
|---|---|---|
col |
pyspark.sql.Column vagy oszlop neve |
Oszlop vagy kifejezés neve. |
offset |
int, nem kötelező | A kiterjesztendő sorok száma. Az alapértelmezett érték 1. |
default |
optional | Alapértelmezett érték. |
Visszatérítések
pyspark.sql.Column: érték az aktuális sor után a következő alapján offset: .
Példák
1. példa: Az érdeklődő használata a következő érték lekéréséhez
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|
+---+---+----------+
2. példa: Az érdeklődő használata alapértelmezett értékkel
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|
+---+---+----------+
3. példa: Az érdeklődő használata 2 eltolással
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|
+---+---+----------+