Pular para o conteúdo principal

matrizes_sobrepostas

Retorna uma coluna booleana indicando se as matrizes de entrada possuem elementos não nulos em comum. Retorna verdadeiro se existirem, nulo se as matrizes não contiverem nenhum elemento em comum, mas não estiverem vazias e pelo menos uma delas contiver um elemento nulo, e falso caso contrário.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.arrays_overlap(a1, a2)

Parâmetros

Parâmetro

Tipo

Descrição

a1

pyspark.sql.Column ou str

O nome da coluna que contém o primeiro array.

a2

pyspark.sql.Column ou str

O nome da coluna que contém o segundo array.

Devoluções

pyspark.sql.ColumnUma nova coluna do tipo Boolean , onde cada valor indica se as matrizes correspondentes das colunas de entrada contêm elementos em comum.

Exemplos

Exemplo 1 : Uso básico da função arrays_overlap.

Python
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()
Output
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| true|
| false|
+--------------------+

Exemplo 2 : Utilização da função arrays_overlap com arrays que contêm elementos nulos.

Python
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()
Output
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| NULL|
| false|
+--------------------+

Exemplo 3 : Utilização da função arrays_overlap com arrays que são nulos.

Python
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()
Output
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| NULL|
| NULL|
+--------------------+

Exemplo 4 : Utilização de arrays_overlap em arrays com elementos idênticos.

Python
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()
Output
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| true|
| true|
+--------------------+