Pular para o conteúdo principal

fatiar

Retorna uma nova coluna de matriz, dividindo a coluna da matriz de entrada a partir de um índice inicial até um comprimento específico. Os índices começam em 1 e podem ser negativos para indexar a partir do final da matriz. O parâmetro `length` especifica o número de elementos na matriz resultante.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.slice(x, start, length)

Parâmetros

Parâmetro

Tipo

Descrição

x

pyspark.sql.Column ou str

Insira o nome da coluna ou da matriz que deseja fatiar.

start

pyspark.sql.Column, str ou int

O índice de início da fatia de operações. Se for negativo, comece o índice a partir do final da matriz.

length

pyspark.sql.Column, str ou int

O comprimento da fatia, que representa o número de elementos na matriz resultante.

Devoluções

pyspark.sql.ColumnUm novo objeto Column do tipo Array, onde cada valor é uma fatia da lista correspondente da coluna de entrada.

Exemplos

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

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

Exemplo 2 : Fatiamento com índice inicial negativo.

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

Exemplo 3 : Função slice com entradas de coluna para início e comprimento.

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3], 2, 2), ([4, 5], 1, 3)], ['x', 'start', 'length'])
df.select(sf.slice(df.x, df.start, df.length)).show()
Output
+-----------------------+
|slice(x, start, length)|
+-----------------------+
| [2, 3]|
| [4, 5]|
+-----------------------+