Aller au contenu principal

Début

Fonction de fenêtre : renvoie la valeur qui se trouve offset lignes après la ligne actuelle, et default s'il y a moins de offset lignes après la ligne actuelle. Par exemple, un offset de un renverra la ligne suivante à tout moment dans la partition de la fenêtre.

Ceci est équivalent à la fonction LEAD en SQL.

Syntaxe

Python
from pyspark.sql import functions as sf

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

parameter

parameter

Type

Description

col

pyspark.sql.Column ou nom de colonne

Nom de la colonne ou de l'expression.

offset

int, facultatif

Nombre de lignes à étendre. Default, c'est 1.

default

Facultatif

Valeur default.

parameter

Type

Description

col

pyspark.sql.Column ou nom de colonne

Nom de la colonne ou de l'expression.

offset

int, facultatif

Nombre de lignes à étendre. Default, c'est 1.

default

Facultatif

Valeur default.

Renvoie

pyspark.sql.Column: valeur après la ligne actuelle basée sur offset.

Exemples

Exemple 1 : Utilisation de `lead` pour obtenir la valeur suivante

Python
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()
Output
+---+---+
| c1| c2|
+---+---+
| a| 1|
| a| 2|
| a| 3|
| b| 8|
| b| 2|
+---+---+
Python
w = Window.partitionBy("c1").orderBy("c2")
df.withColumn("next_value", sf.lead("c2").over(w)).show()
Output
+---+---+----------+
| c1| c2|next_value|
+---+---+----------+
| a| 1| 2|
| a| 2| 3|
| a| 3| NULL|
| b| 2| 8|
| b| 8| NULL|
+---+---+----------+

Exemple 2 : Utilisation de la piste avec une valeur default

Python
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()
Output
+---+---+----------+
| c1| c2|next_value|
+---+---+----------+
| a| 1| 2|
| a| 2| 3|
| a| 3| 0|
| b| 2| 8|
| b| 8| 0|
+---+---+----------+

Exemple 3 : Utilisation de « lead » avec un offset de 2

Python
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()
Output
+---+---+----------+
| c1| c2|next_value|
+---+---+----------+
| a| 1| 3|
| a| 2| -1|
| a| 3| -1|
| b| 2| -1|
| b| 8| -1|
+---+---+----------+