我需要在我的数据框中添加一列,该列将从 500 开始递增 1。所以第一行是 500,第二行是 501 等等。使用 UDF 没有意义,因为它可以在不同的 worker 身上执行,我不知道任何将起始值作为参数的函数。我没有任何东西可以对我的数据框进行排序。默认情况下,行号和自动递增都将从 1 开始。我相信我可以做到,但是将我的 df 转换为 rdd 然后再转换回 df 似乎是一个非常难看的解决方案。您是否知道任何可以帮助我解决数据框级别问题的现有函数?
谢谢!
最佳答案
由于 monotonically_increasing_id()
不是连续的,您可以使用 row_num()
而不是 monotonically_increasing_id()
并添加 499。
from pyspark.sql.window import Window
df = df.withColumn("idx", monotonically_increasing_id())
w = Window().orderBy("idx")
df.withColumn("row_num", (499 + row_number().over(w))).show()
关于python - Pyspark:从特定值开始自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64208161/