从开始到停止生成整数序列,逐步递增。 如果未设置步骤,则如果 start 小于或等于 stop,则函数递增 1,否则将递减 1。
Syntax
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]|
+---------------------------+