Bagikan melalui


array_except

Mengembalikan array baru yang berisi elemen yang ada di col1 tetapi tidak di col2, tanpa duplikat.

Syntax

from pyspark.sql import functions as sf

sf.array_except(col1, col2)

Parameter-parameternya

Pengaturan Tipe Description
col1 pyspark.sql.Column atau str Nama kolom yang berisi array pertama.
col2 pyspark.sql.Column atau str Nama kolom yang berisi array kedua.

Pengembalian Barang

pyspark.sql.Column: Array baru yang berisi elemen yang ada di col1 tetapi tidak di col2.

Examples

Contoh 1: Penggunaan dasar

from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["b", "a", "c"], c2=["c", "d", "a", "f"])])
df.select(sf.array_except(df.c1, df.c2)).show()
+--------------------+
|array_except(c1, c2)|
+--------------------+
|                 [b]|
+--------------------+

Contoh 2: Kecuali tanpa elemen umum

from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["b", "a", "c"], c2=["d", "e", "f"])])
df.select(sf.sort_array(sf.array_except(df.c1, df.c2))).show()
+--------------------------------------+
|sort_array(array_except(c1, c2), true)|
+--------------------------------------+
|                             [a, b, c]|
+--------------------------------------+

Contoh 3: Kecuali dengan semua elemen umum

from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["a", "b", "c"], c2=["a", "b", "c"])])
df.select(sf.array_except(df.c1, df.c2)).show()
+--------------------+
|array_except(c1, c2)|
+--------------------+
|                  []|
+--------------------+

Contoh 4: Kecuali dengan nilai null

from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["a", "b", None], c2=["a", None, "c"])])
df.select(sf.array_except(df.c1, df.c2)).show()
+--------------------+
|array_except(c1, c2)|
+--------------------+
|                 [b]|
+--------------------+

Contoh 5: Kecuali dengan array kosong

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_except(df.c1, df.c2)).show()
+--------------------+
|array_except(c1, c2)|
+--------------------+
|                  []|
+--------------------+