Pular para o conteúdo principal

array_contém

Retorna um valor booleano indicando se a matriz contém o valor fornecido. Retorna nulo se a matriz for nula, verdadeiro se a matriz contiver o valor fornecido e falso caso contrário.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.array_contains(col, value)

Parâmetros

Parâmetro

Tipo

Descrição

col

pyspark.sql.Column ou str

A coluna de destino que contém as matrizes.

value

Qualquer um

O valor ou a coluna a ser verificada na matriz.

Devoluções

pyspark.sql.ColumnUma nova coluna do tipo Boolean , onde cada valor indica se a matriz correspondente da coluna de entrada contém o valor especificado.

Exemplos

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

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"],), ([],)], ['data'])
df.select(sf.array_contains(df.data, "a")).show()
Output
+-----------------------+
|array_contains(data, a)|
+-----------------------+
| true|
| false|
+-----------------------+

Exemplo 2 : Utilização da função array_contains com uma coluna.

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"], "c"),
(["c", "d", "e"], "d"),
(["e", "a", "c"], "b")], ["data", "item"])
df.select(sf.array_contains(df.data, sf.col("item"))).show()
Output
+--------------------------+
|array_contains(data, item)|
+--------------------------+
| true|
| true|
| false|
+--------------------------+

Exemplo 3 : Tentativa de usar a função array_contains com um array nulo.

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(None,), (["a", "b", "c"],)], ['data'])
df.select(sf.array_contains(df.data, "a")).show()
Output
+-----------------------+
|array_contains(data, a)|
+-----------------------+
| NULL|
| true|
+-----------------------+

Exemplo 4 : Utilização de array_contains com uma coluna de array contendo valores nulos.

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None, "c"],)], ['data'])
df.select(sf.array_contains(df.data, "a")).show()
Output
+-----------------------+
|array_contains(data, a)|
+-----------------------+
| true|
+-----------------------+