Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Generate a sequence of integers from start to stop, incrementing by step. If step is not set, the function increments by 1 if start is less than or equal to stop, otherwise it decrements by 1.
Syntax
from pyspark.sql import functions as sf
sf.sequence(start, stop, step=None)
Parameters
| Parameter | Type | Description |
|---|---|---|
start |
pyspark.sql.Column or str |
The starting value (inclusive) of the sequence. |
stop |
pyspark.sql.Column or str |
The last value (inclusive) of the sequence. |
step |
pyspark.sql.Column or str, optional |
The value to add to the current element to get the next element in the sequence. The default is 1 if start is less than or equal to stop, otherwise -1. |
Returns
pyspark.sql.Column: A new column that contains an array of sequence values.
Examples
Example 1: Generating a sequence with default step
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]|
+---------------------+
Example 2: Generating a sequence with a custom step
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]|
+---------------------------+
Example 3: Generating a sequence with a negative step
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]|
+---------------------------+