Python 如何为PySpark数据帧添加具有唯一行id的列,该数据帧从max(行id)和x2B开始;从上一次代码运行中删除1
我使用下面的代码创建了一个具有唯一行id的新列,但每次运行代码时,行id都从0开始。我希望行id从上一次代码运行的最高行id开始 请帮忙Python 如何为PySpark数据帧添加具有唯一行id的列,该数据帧从max(行id)和x2B开始;从上一次代码运行中删除1,python,pyspark,pyspark-dataframes,Python,Pyspark,Pyspark Dataframes,我使用下面的代码创建了一个具有唯一行id的新列,但每次运行代码时,行id都从0开始。我希望行id从上一次代码运行的最高行id开始 请帮忙 from pyspark.sql.functions import monotonically_increasing_id new_raw_df = raw_df.withColumn("id", monotonically_increasing_id()) 这里有两件事: 单调递增的\u id不起作用,它会在每次运行时以递增的顺序生成一个从0开始的64位数
from pyspark.sql.functions import monotonically_increasing_id
new_raw_df = raw_df.withColumn("id", monotonically_increasing_id())
这里有两件事:
单调递增的\u id
不起作用,它会在每次运行时以递增的顺序生成一个从0开始的64位数字,但是如果数据帧有多个分区(raw\u df.rdd.getNumPartitions()
),它会将分区的hashid添加到其中。参考偏移量
变量并添加到其中,如:以单调递增的方式导入\u id
#添加了1,以防需要从1开始的ID,而不是零
new_raw_df=raw_df.with column(“id”,单调递增的_id()+1+偏移量)
此外,如果您正在寻找代理id生成机制,那么您可以使用df.rdd.zipWithIndex
+offset
,但您仍然需要将上一个spark submit
的偏移量存储在某处