arrays_overlap
Renvoie une colonne booléenne indiquant si les tableaux d'entrée ont des éléments non nuls en commun. Renvoie vrai si c'est le cas, null si les tableaux ne contiennent aucun élément commun mais ne sont pas vides et qu'au moins l'un d'eux contient un élément null, et faux sinon.
Syntaxe
from pyspark.sql import functions as sf
sf.arrays_overlap(a1, a2)
parameter
parameter | Type | Description |
|---|---|---|
|
| Le nom de la colonne qui contient le premier tableau. |
|
| Le nom de la colonne qui contient le second tableau. |
Renvoie
pyspark.sql.Column: Une nouvelle colonne de type booléen, où chaque valeur indique si les tableaux correspondants des colonnes d'entrée contiennent des éléments communs.
Exemples
Exemple 1 : Utilisation de base de la fonction arrays_overlap.
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b"], ["b", "c"]), (["a"], ["b", "c"])], ['x', 'y'])
df.select(sf.arrays_overlap(df.x, df.y)).show()
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| true|
| false|
+--------------------+
Exemple 2 : Utilisation de la fonction arrays_overlap avec des tableaux contenant des éléments nuls.
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None], ["b", None]), (["a"], ["b", "c"])], ['x', 'y'])
df.select(sf.arrays_overlap(df.x, df.y)).show()
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| NULL|
| false|
+--------------------+
**Exemple 3** : utilisation de la fonction arrays_overlap avec des tableaux nuls.
from pyspark.sql import functions as sf
df = spark.createDataFrame([(None, ["b", "c"]), (["a"], None)], ['x', 'y'])
df.select(sf.arrays_overlap(df.x, df.y)).show()
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| NULL|
| NULL|
+--------------------+
Exemple 4 : Utilisation de arrays_overlap sur des tableaux avec des éléments identiques.
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b"], ["a", "b"]), (["a"], ["a"])], ['x', 'y'])
df.select(sf.arrays_overlap(df.x, df.y)).show()
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| true|
| true|
+--------------------+