Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Insère un élément dans un tableau donné à un index de tableau spécifié. Les index de tableau commencent à 1 ou commencent à partir de la fin si l’index est négatif. L’index au-dessus de la taille du tableau ajoute le tableau ou précède le tableau si l’index est négatif, avec des éléments « null ».
Syntaxe
from pyspark.sql import functions as sf
sf.array_insert(arr, pos, value)
Paramètres
| Paramètre | Type | Descriptif |
|---|---|---|
arr |
pyspark.sql.Column ou str |
Nom de colonne contenant un tableau |
pos |
pyspark.sql.Column, str ou int |
Nom de la colonne de type numérique indiquant la position d’insertion (à partir de l’index 1, la position négative est un début à partir de l’arrière du tableau) |
value |
N'importe lequel | Valeur littérale ou expression column. |
Retours
pyspark.sql.Column: tableau de valeurs, y compris la nouvelle valeur spécifiée
Examples
Exemple 1 : Insertion d’une valeur à une position spécifique
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, 2, 'd')).show()
+------------------------+
|array_insert(data, 2, d)|
+------------------------+
| [a, d, b, c]|
+------------------------+
Exemple 2 : Insertion d’une valeur à une position négative
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, -2, 'd')).show()
+-------------------------+
|array_insert(data, -2, d)|
+-------------------------+
| [a, b, d, c]|
+-------------------------+
Exemple 3 : Insertion d’une valeur à une position supérieure à la taille du tableau
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, 5, 'e')).show()
+------------------------+
|array_insert(data, 5, e)|
+------------------------+
| [a, b, c, NULL, e]|
+------------------------+
Exemple 4 : Insertion d’une valeur NULL
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()
+---------------------------+
|array_insert(data, 2, NULL)|
+---------------------------+
| [a, NULL, b, c]|
+---------------------------+
Exemple 5 : Insertion d’une valeur dans un tableau NULL
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()
+------------------------+
|array_insert(data, 1, 5)|
+------------------------+
| NULL|
+------------------------+