Aller au contenu principal

array_insert

Insère un élément dans un tableau donné à un index de tableau spécifié. Les index de tableau start à 1, ou start à la fin si l'index est négatif. Un index supérieur à la taille du tableau ajoute des éléments 'null' au tableau, ou les préfixe au tableau si l'index est négatif.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.array_insert(arr, pos, value)

parameter

parameter

Type

Description

arr

pyspark.sql.Column ou str

Nom de la colonne contenant un tableau

pos

pyspark.sql.Column, str ou int

Nom de la colonne de type numérique indiquant la position d'insertion (startant à l'index 1, une position négative correspond à un start à partir de la fin du tableau)

value

Tout

Une valeur littérale ou une expression de colonne.

parameter

Type

Description

arr

pyspark.sql.Column ou str

Nom de la colonne contenant un tableau

pos

pyspark.sql.Column, str ou int

Nom de la colonne de type numérique indiquant la position d'insertion (startant à l'index 1, une position négative correspond à un start à partir de la fin du tableau)

value

Tout

Une valeur littérale ou une expression de colonne.

Renvoie

pyspark.sql.Column: un tableau de valeurs, incluant la nouvelle valeur spécifiée

Exemples

Exemple 1 : Insertion d'une valeur à une position spécifique

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

Exemple 2 : Insertion d'une valeur à une position négative

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

**Exemple 3** : Insertion d'une valeur à une position supérieure à la taille du tableau

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

Exemple 4 : Insertion d'une valeur NULL

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, 2, sf.lit(None))).show()
Output
+---------------------------+
|array_insert(data, 2, NULL)|
+---------------------------+
| [a, NULL, b, c]|
+---------------------------+

Exemple 5 : Insertion d'une valeur dans un tableau NULL

Python
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, IntegerType, StructType, StructField
schema = StructType([StructField("data", ArrayType(IntegerType()), True)])
df = spark.createDataFrame([(None,)], schema=schema)
df.select(sf.array_insert(df.data, 1, 5)).show()
Output
+------------------------+
|array_insert(data, 1, 5)|
+------------------------+
| NULL|
+------------------------+