如何在Pyspark中向数据框添加连续的“Ident”列,而不是monotonically_increasing_id()?

时间:2017-10-05 11:26:48

标签: dataframe pyspark pyspark-sql continuous ident

我有一个数据框'df',我想添加一个'Ident'数字列,其值是连续的。我尝试使用monotonically_increasing_id(),但值不是连续的。正如其描述所说:“生成的ID保证单调增加且唯一,但不是连续的。”

所以,我的问题是,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

你可以尝试这样的事情,

df = df.rdd.zipWithIndex().map(lambda x: [x[1]] + [y for y in x[0]]).toDF(['Ident']+df.columns)

这将为您提供第一列作为您的标识符,该列将具有从0到N-1的连续值,其中N是以df为单位的记录总数。