Compartir a través de


array_position

Busca la posición de la primera aparición del valor especificado en la matriz especificada. Devuelve NULL si alguno de los argumentos es NULL. La posición no está basada en cero, sino en un índice basado en 1. Devuelve 0 si no se encontró el valor especificado en la matriz.

Syntax

from pyspark.sql import functions as sf

sf.array_position(col, value)

Parámetros

Parámetro Tipo Description
col pyspark.sql.Column o str Columna de destino en la que trabajar.
value Cualquiera Valor o expresión column que se va a buscar.

Devoluciones

pyspark.sql.Column: posición del valor de la matriz especificada si se encuentra y 0 de lo contrario.

Examples

Ejemplo 1: Buscar la posición de una cadena en una matriz de cadenas

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

Ejemplo 2: Búsqueda de la posición de una cadena en una matriz vacía

from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StringType, StructField, StructType
schema = StructType([StructField("data", ArrayType(StringType()), True)])
df = spark.createDataFrame([([],)], schema=schema)
df.select(sf.array_position(df.data, "a")).show()
+-----------------------+
|array_position(data, a)|
+-----------------------+
|                      0|
+-----------------------+

Ejemplo 3: Búsqueda de la posición de un entero en una matriz de enteros

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3],)], ['data'])
df.select(sf.array_position(df.data, 2)).show()
+-----------------------+
|array_position(data, 2)|
+-----------------------+
|                      2|
+-----------------------+

Ejemplo 4: Buscar la posición de un valor no existente en una matriz

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

Ejemplo 5: Búsqueda de la posición de un valor en una matriz con valores NULL

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

Ejemplo 6: Buscar la posición del valor de una columna en una matriz de enteros

from pyspark.sql import functions as sf
df = spark.createDataFrame([([10, 20, 30], 20)], ['data', 'col'])
df.select(sf.array_position(df.data, df.col)).show()
+-------------------------+
|array_position(data, col)|
+-------------------------+
|                        2|
+-------------------------+