Aller au contenu principal

array_union

Retourne un nouveau tableau contenant l'union des éléments de col1 et col2, sans doublons.

Syntaxe​

Python
from pyspark.sql import functions as sf

sf.array_union(col1, col2)

parameter​

parameter

Type

Description

col1

pyspark.sql.Column ou str

Nom de la colonne contenant le premier tableau.

col2

pyspark.sql.Column ou str

Nom de la colonne contenant le deuxième tableau.

parameter

Type

Description

col1

pyspark.sql.Column ou str

Nom de la colonne contenant le premier tableau.

col2

pyspark.sql.Column ou str

Nom de la colonne contenant le deuxième tableau.

Renvoie​

pyspark.sql.Column: Un nouveau tableau contenant l'union des éléments dans col1 et col2.

Exemples​

Exemple 1 : utilisation de base

Python
from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["b", "a", "c"], c2=["c", "d", "a", "f"])])
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [a, b, c, d, f]|
+-------------------------------------+

Exemple 2 : union sans éléments communs

Python
from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["b", "a", "c"], c2=["d", "e", "f"])])
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [a, b, c, d, e, f]|
+-------------------------------------+

Exemple 3 : union avec tous les éléments communs

Python
from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["a", "b", "c"], c2=["a", "b", "c"])])
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [a, b, c]|
+-------------------------------------+

**Exemple 4** : Union avec des valeurs nulles

Python
from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["a", "b", None], c2=["a", None, "c"])])
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [NULL, a, b, c]|
+-------------------------------------+

**Exemple 5** : Union avec des tableaux vides

Python
from pyspark.sql import Row, functions as sf
from pyspark.sql.types import ArrayType, StringType, StructField, StructType
data = [Row(c1=[], c2=["a", "b", "c"])]
schema = StructType([
StructField("c1", ArrayType(StringType()), True),
StructField("c2", ArrayType(StringType()), True)
])
df = spark.createDataFrame(data, schema)
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [a, b, c]|
+-------------------------------------+