Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为PySpark数据帧添加具有唯一行id的列,该数据帧从max(行id)和x2B开始;从上一次代码运行中删除1_Python_Pyspark_Pyspark Dataframes - Fatal编程技术网

Python 如何为PySpark数据帧添加具有唯一行id的列,该数据帧从max(行id)和x2B开始;从上一次代码运行中删除1

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位数

我使用下面的代码创建了一个具有唯一行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位数字,但是如果数据帧有多个分区(
    raw\u df.rdd.getNumPartitions()
    ),它会将分区的hashid添加到其中。参考
  • 如果需要在上一次运行时添加数字,则将其另存为
    偏移量
    变量并添加到其中,如:
  • pyspark.sql.functions中的
    以单调递增的方式导入\u id
    #添加了1,以防需要从1开始的ID,而不是零
    new_raw_df=raw_df.with column(“id”,单调递增的_id()+1+偏移量)
    
    此外,如果您正在寻找代理id生成机制,那么您可以使用
    df.rdd.zipWithIndex
    +
    offset
    ,但您仍然需要将上一个
    spark submit
    的偏移量存储在某处