Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Restituisce una nuova matrice contenente l'intersezione degli elementi in col1 e col2, senza duplicati.
Sintassi
from pyspark.sql import functions as sf
sf.array_intersect(col1, col2)
Parametri
| Parametro | TIPO | Description |
|---|---|---|
col1 |
pyspark.sql.Column o str |
Nome della colonna contenente la prima matrice. |
col2 |
pyspark.sql.Column o str |
Nome della colonna contenente la seconda matrice. |
Restituzioni
pyspark.sql.Column: nuova matrice contenente l'intersezione degli elementi in col1 e col2.
Esempi
Esempio 1: Utilizzo di base
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()
+-----------------------------------------+
|sort_array(array_intersect(c1, c2), true)|
+-----------------------------------------+
| [a, c]|
+-----------------------------------------+
Esempio 2: Intersezione senza elementi comuni
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()
+-----------------------+
|array_intersect(c1, c2)|
+-----------------------+
| []|
+-----------------------+
Esempio 3: Intersezione con tutti gli elementi comuni
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()
+-----------------------------------------+
|sort_array(array_intersect(c1, c2), true)|
+-----------------------------------------+
| [a, b, c]|
+-----------------------------------------+
Esempio 4: Intersezione con valori Null
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()
+-----------------------------------------+
|sort_array(array_intersect(c1, c2), true)|
+-----------------------------------------+
| [NULL, a]|
+-----------------------------------------+
Esempio 5: Intersezione con matrici vuote
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()
+-----------------------+
|array_intersect(c1, c2)|
+-----------------------+
| []|
+-----------------------+