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)|
+-----------------------+
| []|
+-----------------------+