Condividi tramite


sequenza

Generare una sequenza di numeri interi dall'inizio alla fine, incrementando di un passo. Se il passaggio non è impostato, la funzione viene incrementata di 1 se start è minore o uguale a stop, altrimenti decrementa di 1.

Sintassi

from pyspark.sql import functions as sf

sf.sequence(start, stop, step=None)

Parametri

Parametro TIPO Description
start pyspark.sql.Column o str Valore iniziale (inclusivo) della sequenza.
stop pyspark.sql.Column o str Ultimo valore (inclusivo) della sequenza.
step pyspark.sql.Column o str, facoltativo Valore da aggiungere all'elemento corrente per ottenere l'elemento successivo nella sequenza. Il valore predefinito è 1 se start è minore o uguale a stop, in caso contrario -1.

Restituzioni

pyspark.sql.Column: nuova colonna contenente una matrice di valori di sequenza.

Esempi

Esempio 1: Generazione di una sequenza con passaggio predefinito

import pyspark.sql.functions as sf
df = spark.createDataFrame([(-2, 2)], ['start', 'stop'])
df.select(sf.sequence(df.start, df.stop)).show()
+---------------------+
|sequence(start, stop)|
+---------------------+
|    [-2, -1, 0, 1, 2]|
+---------------------+

Esempio 2: Generazione di una sequenza con un passaggio personalizzato

import pyspark.sql.functions as sf
df = spark.createDataFrame([(4, -4, -2)], ['start', 'stop', 'step'])
df.select(sf.sequence(df.start, df.stop, df.step)).show()
+---------------------------+
|sequence(start, stop, step)|
+---------------------------+
|          [4, 2, 0, -2, -4]|
+---------------------------+

Esempio 3: Generazione di una sequenza con un passaggio negativo

import pyspark.sql.functions as sf
df = spark.createDataFrame([(5, 1, -1)], ['start', 'stop', 'step'])
df.select(sf.sequence(df.start, df.stop, df.step)).show()
+---------------------------+
|sequence(start, stop, step)|
+---------------------------+
|            [5, 4, 3, 2, 1]|
+---------------------------+