python - Pyspark:从特定值开始自动递增

标签 python pyspark databricks

我需要在我的数据框中添加一列,该列将从 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/

相关文章:

python - 围绕 QPushButton PyQt5 绘制 QFrame

python - 模拟对象库 ANY 未按预期工作

python - 使用 TensorFlow 在图像上绘制点

azure - 如何高效读取数据湖文件的元数据

python - Big Sur 更新后修复 Anaconda Python

PySpark DataFrame 根据其他列中的值乘以列

python - 在基于 Spark Dataframe 的 API 中过滤多列

apache-spark - 列出 pyspark 中加载的所有其他 jar

Databricks:在 cron 上删除根 DBFS 上的集群日志和修订

databricks - "No Isolation Shared"通过 CLI 的 Databricks 作业集群