array_intersect

Sütun1 ve sütun2 içindeki öğelerin kesişimini içeren yeni bir dizi döndürür, yinelemeler olmadan.

Sözdizimi

from pyspark.sql import functions as sf

sf.array_intersect(col1, col2)

Parametreler

Parametre Türü Description
col1 pyspark.sql.Column veya str İlk diziyi içeren sütunun adı.
col2 pyspark.sql.Column veya str İkinci diziyi içeren sütunun adı.

İade

pyspark.sql.Column: Sütun1 ve sütun2 içindeki öğelerin kesişimini içeren yeni bir dizi.

Örnekler

Örnek 1: Temel kullanım

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

Örnek 2: Ortak öğe içermeyen kesişim

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

Örnek 3: Tüm ortak öğelerle kesişim

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

Örnek 4: Null değerlerle kesişim

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

Örnek 5: Boş dizilerle kesişim

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