Pular para o conteúdo principal

posição_do_array

Localiza a posição da primeira ocorrência do valor fornecido na matriz fornecida. Retorna nulo se algum dos argumentos for nulo. A posição não é baseada em zero, mas sim em um índice baseado em 1. Retorna 0 se o valor fornecido não for encontrado na matriz.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.array_position(col, value)

Parâmetros

Parâmetro

Tipo

Descrição

col

pyspark.sql.Column ou str

coluna de destino para trabalhar.

value

Qualquer um

Valor ou expressão de coluna a ser procurada.

Devoluções

pyspark.sql.Column: posição do valor na matriz fornecida, se encontrado, e 0 caso contrário.

Exemplos

Exemplo 1 : Encontrando a posição de uma string em um array de strings

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

Exemplo 2 : Encontrando a posição de uma string em um array vazio

Python
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()
Output
+-----------------------+
|array_position(data, a)|
+-----------------------+
| 0|
+-----------------------+

Exemplo 3 : Encontrando a posição de um número inteiro em um vetor de números inteiros

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

Exemplo 4 : Encontrando a posição de um valor inexistente em uma matriz

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

Exemplo 5 : Encontrando a posição de um valor em uma matriz com valores nulos

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

Exemplo 6 : Encontrando a posição do valor de uma coluna em uma matriz de números inteiros

Python
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()
Output
+-------------------------+
|array_position(data, col)|
+-------------------------+
| 2|
+-------------------------+