Compartir vía


array_contains

Devuelve un valor booleano que indica si la matriz contiene el valor especificado. Devuelve null si la matriz es null, true si la matriz contiene el valor especificado y false en caso contrario.

Syntax

from pyspark.sql import functions as sf

sf.array_contains(col, value)

Parámetros

Parámetro Tipo Description
col pyspark.sql.Column o str Columna de destino que contiene las matrices.
value Cualquiera Valor o columna que se va a comprobar en la matriz.

Devoluciones

pyspark.sql.Column: una nueva columna de tipo booleano, donde cada valor indica si la matriz correspondiente de la columna de entrada contiene el valor especificado.

Examples

Ejemplo 1: Uso básico de array_contains función.

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

Ejemplo 2: Uso de array_contains función con una columna.

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()
+--------------------------+
|array_contains(data, item)|
+--------------------------+
|                      true|
|                      true|
|                     false|
+--------------------------+

Ejemplo 3: Intento de usar array_contains función con una matriz nula.

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

Ejemplo 4: Uso de array_contains con una columna de matriz que contiene valores NULL.

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