Aller au contenu principal

array_position

Localise la position de la première occurrence de la valeur donnée dans le tableau donné. Renvoie nul si l'un des arguments est nul. La position n'est pas basée sur zéro, mais sur un index basé sur 1. Renvoie 0 si la valeur donnée n'a pas pu être trouvée dans le tableau.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.array_position(col, value)

parameter

parameter

Type

Description

col

pyspark.sql.Column ou str

Colonne cible sur laquelle travailler.

value

N’importe lequel

Valeur ou expression de colonne à rechercher.

parameter

Type

Description

col

pyspark.sql.Column ou str

Colonne cible sur laquelle travailler.

value

N’importe lequel

Valeur ou expression de colonne à rechercher.

Renvoie

pyspark.sql.Column: position de la valeur dans le tableau donné si trouvée et 0 sinon.

Exemples

Exemple 1 : recherche de la position d'une chaîne dans un tableau de chaînes

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["c", "b", "a"],)], ['data'])
df.select(sf.array_position(df.data, "a")).show()
Output
+-----------------------+
|array_position(data, a)|
+-----------------------+
| 3|
+-----------------------+

Exemple 2 : Recherche de la position d'une chaîne dans un tableau vide

Python
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StringType, StructField, StructType
schema = StructType([StructField("data", ArrayType(StringType()), True)])
df = spark.createDataFrame([([],)], schema=schema)
df.select(sf.array_position(df.data, "a")).show()
Output
+-----------------------+
|array_position(data, a)|
+-----------------------+
| 0|
+-----------------------+

Exemple 3 : Recherche de la position d'un nombre entier dans un tableau de nombres entiers

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3],)], ['data'])
df.select(sf.array_position(df.data, 2)).show()
Output
+-----------------------+
|array_position(data, 2)|
+-----------------------+
| 2|
+-----------------------+

Exemple 4 : recherche de la position d'une valeur non existante dans un tableau

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["c", "b", "a"],)], ['data'])
df.select(sf.array_position(df.data, "d")).show()
Output
+-----------------------+
|array_position(data, d)|
+-----------------------+
| 0|
+-----------------------+

**Exemple 5** : Recherche de la position d'une valeur dans un tableau avec des valeurs nulles.

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([None, "b", "a"],)], ['data'])
df.select(sf.array_position(df.data, "a")).show()
Output
+-----------------------+
|array_position(data, a)|
+-----------------------+
| 3|
+-----------------------+

Exemple 6 : Trouver la position de la valeur d’une colonne dans un tableau d’entiers

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([10, 20, 30], 20)], ['data', 'col'])
df.select(sf.array_position(df.data, df.col)).show()
Output
+-------------------------+
|array_position(data, col)|
+-------------------------+
| 2|
+-------------------------+