Condividi tramite


slice

Restituisce una nuova colonna di matrice sezionando la colonna della matrice di input da un indice iniziale a una lunghezza specifica. Gli indici iniziano da 1 e possono essere negativi per l'indice dalla fine della matrice. La lunghezza specifica il numero di elementi nella matrice risultante.

Sintassi

from pyspark.sql import functions as sf

sf.slice(x, start, length)

Parametri

Parametro TIPO Description
x pyspark.sql.Column o str Colonna o nome colonna della matrice di input da sezionare.
start pyspark.sql.Column, stringa o intero Indice iniziale per l'operazione di sezione. Se negativo, avvia l'indice dalla fine della matrice.
length pyspark.sql.Column, stringa o intero Lunghezza della sezione che rappresenta il numero di elementi nella matrice risultante.

Restituzioni

pyspark.sql.Column: nuovo oggetto Column di tipo Array, dove ogni valore è una sezione dell'elenco corrispondente dalla colonna di input.

Esempi

Esempio 1: Utilizzo di base della funzione slice.

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()
+--------------+
|slice(x, 2, 2)|
+--------------+
|        [2, 3]|
|           [5]|
+--------------+

Esempio 2: sezionamento con indice iniziale negativo.

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()
+---------------+
|slice(x, -1, 1)|
+---------------+
|            [3]|
|            [5]|
+---------------+

Esempio 3: Funzione slice con input di colonna per inizio e lunghezza.

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()
+-----------------------+
|slice(x, start, length)|
+-----------------------+
|                 [2, 3]|
|                 [4, 5]|
+-----------------------+