Поделиться через


последовательность

Создайте последовательность целых чисел от начала до конца, увеличивая на заданный шаг. Если шаг не задан, функция увеличивается на 1, если запуск меньше или равен остановке, в противном случае он уменьшается на 1.

Синтаксис

from pyspark.sql import functions as sf

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

Параметры

Параметр Тип Description
start pyspark.sql.Column или str Начальное значение (включительно) последовательности.
stop pyspark.sql.Column или str Последнее значение (включительно) последовательности.
step pyspark.sql.Column или str, необязательный Значение, добавляемое к текущему элементу, чтобы получить следующий элемент в последовательности. Значение по умолчанию равно 1, если запуск меньше или равен остановке, в противном случае — значение -1.

Возвраты

pyspark.sql.Column: новый столбец, содержащий массив значений последовательности.

Примеры

Пример 1. Создание последовательности с шагом по умолчанию

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]|
+---------------------+

Пример 2. Создание последовательности с помощью пользовательского шага

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]|
+---------------------------+

Пример 3. Создание последовательности с отрицательным шагом

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]|
+---------------------------+