Aller au contenu principal

array_intersect

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

Syntaxe​

Python
from pyspark.sql import functions as sf

sf.array_intersect(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’intersection des éléments de 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_intersect(df.c1, df.c2))).show()
Output
+-----------------------------------------+
|sort_array(array_intersect(c1, c2), true)|
+-----------------------------------------+
| [a, c]|
+-----------------------------------------+

**Exemple 2** : Intersection 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.array_intersect(df.c1, df.c2)).show()
Output
+-----------------------+
|array_intersect(c1, c2)|
+-----------------------+
| []|
+-----------------------+

Exemple 3 : intersection 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_intersect(df.c1, df.c2))).show()
Output
+-----------------------------------------+
|sort_array(array_intersect(c1, c2), true)|
+-----------------------------------------+
| [a, b, c]|
+-----------------------------------------+

Exemple 4 : intersection 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_intersect(df.c1, df.c2))).show()
Output
+-----------------------------------------+
|sort_array(array_intersect(c1, c2), true)|
+-----------------------------------------+
| [NULL, a]|
+-----------------------------------------+

Exemple 5 : Intersection 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.array_intersect(df.c1, df.c2)).show()
Output
+-----------------------+
|array_intersect(c1, c2)|
+-----------------------+
| []|
+-----------------------+