sequence(start, stop[, step])
Описание
Функция sequence()
генерирует последовательность целых чисел от start до stop, увеличивая на step. Если step не указан, используется значение 1.
Параметры
start
: int - начальное значение последовательностиstop
: int - конечное значение последовательностиstep
: int (опционально) - шаг последовательности (по умолчанию 1)
Возвращаемое значение
Array - массив целых чисел от start до stop с шагом step
Пример использования
from pyspark.sql.functions import sequence, lit
# Создаем DataFrame с параметрами последовательностей
df = spark.createDataFrame([
(1, 5, 1),
(5, 1, -1),
(0, 10, 2),
(10, 0, -2)
], ["start", "stop", "step"])
# Генерируем последовательности
df.select(
"start",
"stop",
"step",
sequence("start", "stop").alias("seq_default"),
sequence("start", "stop", "step").alias("seq_with_step")
).show(truncate=False)
# Результат:
# +-----+----+----+------------+------------+
# |start|stop|step|seq_default |seq_with_step|
# +-----+----+----+------------+------------+
# |1 |5 |1 |[1, 2, 3, 4, 5]|[1, 2, 3, 4, 5]|
# |5 |1 |-1 |[] |[5, 4, 3, 2, 1]|
# |0 |10 |2 |[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]|[0, 2, 4, 6, 8, 10]|
# |10 |0 |-2 |[] |[10, 8, 6, 4, 2, 0]|
# +-----+----+----+------------+------------+
# Пример с литералами
df = spark.createDataFrame([(1,)], ["dummy"])
df.select(
sequence(lit(1), lit(5)).alias("seq1"),
sequence(lit(5), lit(1), lit(-1)).alias("seq2"),
sequence(lit(0), lit(10), lit(2)).alias("seq3")
).show(truncate=False)