Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Insere um item em um array dado em um índice especificado do array. Os índices do array começam em 1, ou começam pelo final se o índice for negativo. Índice acima do tamanho do array acrescenta ao array, ou precede o array se o índice for negativo, com elementos 'nulos'.
Sintaxe
from pyspark.sql import functions as sf
sf.array_insert(arr, pos, value)
Parâmetros
| Parâmetro | Tipo | Description |
|---|---|---|
arr |
pyspark.sql.Column ou str |
Nome da coluna que contém um array |
pos |
pyspark.sql.Column, string, ou inteiro |
Nome da coluna do tipo numérico indica a posição de inserção (começando no índice 1, a posição negativa é um início na parte de trás do array) |
value |
Qualquer | Um valor literal, ou uma expressão Coluna. |
Devoluções
pyspark.sql.Column: um array de valores, incluindo o novo valor especificado
Examples
Exemplo 1: Inserir um valor numa posição específica
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, 2, 'd')).show()
+------------------------+
|array_insert(data, 2, d)|
+------------------------+
| [a, d, b, c]|
+------------------------+
Exemplo 2: Inserir um valor numa posição negativa
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, -2, 'd')).show()
+-------------------------+
|array_insert(data, -2, d)|
+-------------------------+
| [a, b, d, c]|
+-------------------------+
Exemplo 3: Inserir um valor numa posição superior ao tamanho do array
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, 5, 'e')).show()
+------------------------+
|array_insert(data, 5, e)|
+------------------------+
| [a, b, c, NULL, e]|
+------------------------+
Exemplo 4: Inserir um valor NULL
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, 2, sf.lit(None))).show()
+---------------------------+
|array_insert(data, 2, NULL)|
+---------------------------+
| [a, NULL, b, c]|
+---------------------------+
Exemplo 5: Inserir um valor num array NULL
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, IntegerType, StructType, StructField
schema = StructType([StructField("data", ArrayType(IntegerType()), True)])
df = spark.createDataFrame([(None,)], schema=schema)
df.select(sf.array_insert(df.data, 1, 5)).show()
+------------------------+
|array_insert(data, 1, 5)|
+------------------------+
| NULL|
+------------------------+