如何在 pyspark 数据框中创建连续数字列?

max*_*x04 4 python sequential-number dataframe pyspark

我想在pyspark数据框中从指定的数字开始创建具有连续数字的列。例如,我想将A列添加到我的数据帧df中,该列将从5开始到数据帧的长度,递增 1,因此567,...,长度( df )。

使用pyspark方法的一些简单解决方案?

nir*_*mar 5

您可以使用范围来做到这一点

df_len = 100
freq =1
ref = spark.range(
    5, df_len, freq
).toDF("id")
ref.show(10)

+---+
| id|
+---+
|  5|
|  6|
|  7|
|  8|
|  9|
| 10|
| 11|
| 12|
| 13|
| 14|
+---+
Run Code Online (Sandbox Code Playgroud)

仅显示前 10 行

  • 问题是向现有数据框添加“新”列 (3认同)

yo*_*nus 5

三个简单步骤:

从 pyspark.sql.window 导入窗口

从 pyspark.sql.functions 导入 monotonically_increasing_id,row_number

df =df.withColumn("row_idx",row_number().over(Window.orderBy(monotically_increasing_id())))