Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Retorna uma nova matriz que contém os elementos presentes em col1, mas não em col2, sem duplicatas.
Sintaxe
from pyspark.sql import functions as sf
sf.array_except(col1, col2)
Parâmetros
| Parâmetro | Tipo | Description |
|---|---|---|
col1 |
pyspark.sql.Column ou str |
Nome da coluna que contém a primeira matriz. |
col2 |
pyspark.sql.Column ou str |
Nome da coluna que contém a segunda matriz. |
Devoluções
pyspark.sql.Column: uma nova matriz que contém os elementos presentes em col1, mas não em col2.
Exemplos
Exemplo 1: Uso básico
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]|
+--------------------+
Exemplo 2: exceto sem elementos comuns
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]|
+--------------------------------------+
Exemplo 3: exceto com todos os elementos comuns
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)|
+--------------------+
| []|
+--------------------+
Exemplo 4: exceto com valores nulos
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]|
+--------------------+
Exemplo 5: exceto com matrizes vazias
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)|
+--------------------+
| []|
+--------------------+