Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione Window: restituisce il valore offset righe dopo la riga corrente e default se è presente meno di offset righe dopo la riga corrente. Ad esempio, una offset di esse restituirà la riga successiva in qualsiasi punto della partizione della finestra.
Equivale alla funzione LEAD in SQL.
Sintassi
from pyspark.sql import functions as sf
sf.lead(col, offset=1, default=None)
Parametri
| Parametro | TIPO | Description |
|---|---|---|
col |
pyspark.sql.Column o il nome della colonna |
Nome della colonna o dell'espressione. |
offset |
int, facoltativo | Numero di righe da estendere. Il valore predefinito è 1. |
default |
opzionale | Valore predefinito. |
Restituzioni
pyspark.sql.Column: valore dopo la riga corrente in base a offset.
Esempi
Esempio 1: Uso del lead per ottenere il valore successivo
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|
+---+---+----------+
Esempio 2: Uso del lead con un valore predefinito
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|
+---+---+----------+
Esempio 3: Uso del lead con un offset pari a 2
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|
+---+---+----------+