max*_*x04 4 python sequential-number dataframe pyspark
我想在pyspark数据框中从指定的数字开始创建具有连续数字的列。例如,我想将A列添加到我的数据帧df中,该列将从5开始到数据帧的长度,递增 1,因此5、6、7,...,长度( df )。
使用pyspark方法的一些简单解决方案?
您可以使用范围来做到这一点
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 行
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())))