Datetime 为唯一时间戳Pypark分配ID

Datetime 为唯一时间戳Pypark分配ID,datetime,pyspark,timestamp,Datetime,Pyspark,Timestamp,我有一个这样的数据框,有数千行。我想为每个唯一的时间戳分配一个ID。我该怎么做?使用map或是否有类似distinct的功能?我已经使用window函数进行了分离和分区,因此无需再次进行差分。只是我需要每个时间戳都有一个唯一的id 通过在30分钟\u窗口列上排序,使用densite\u rank(),rank()窗口函数,以获取相同时间戳值的唯一ID 示例: df.show() #+-------------------+ #| 30_minutes| #+-----------

我有一个这样的数据框,有数千行。我想为每个唯一的时间戳分配一个ID。我该怎么做?使用map或是否有类似distinct的功能?我已经使用window函数进行了分离和分区,因此无需再次进行差分。只是我需要每个时间戳都有一个唯一的id


通过在
30分钟\u窗口
列上排序,使用densite\u rank(),rank()窗口函数,以获取相同时间戳值的唯一ID

示例:

df.show()
#+-------------------+
#|         30_minutes|
#+-------------------+
#|2005-12-23 05:30:00|
#|2005-12-23 05:30:00|
#|2005-12-23 05:30:00|
#|2005-12-24 05:30:00|
#|2005-12-24 05:30:00|
#+-------------------+

from pyspark.sql import *
w=Window.orderBy(col("30_minutes"))

df.withColumn("new_ID",dense_rank().over(w)).show()
#+-------------------+------+
#|         30_minutes|new_ID|
#+-------------------+------+
#|2005-12-23 05:30:00|     1|
#|2005-12-23 05:30:00|     1|
#|2005-12-23 05:30:00|     1|
#|2005-12-24 05:30:00|     2|
#|2005-12-24 05:30:00|     2|
#+-------------------+------+

通过在
30分钟\u窗口
列上排序,使用densite\u rank(),rank()窗口函数,为相同的时间戳值获取唯一ID

示例:

df.show()
#+-------------------+
#|         30_minutes|
#+-------------------+
#|2005-12-23 05:30:00|
#|2005-12-23 05:30:00|
#|2005-12-23 05:30:00|
#|2005-12-24 05:30:00|
#|2005-12-24 05:30:00|
#+-------------------+

from pyspark.sql import *
w=Window.orderBy(col("30_minutes"))

df.withColumn("new_ID",dense_rank().over(w)).show()
#+-------------------+------+
#|         30_minutes|new_ID|
#+-------------------+------+
#|2005-12-23 05:30:00|     1|
#|2005-12-23 05:30:00|     1|
#|2005-12-23 05:30:00|     1|
#|2005-12-24 05:30:00|     2|
#|2005-12-24 05:30:00|     2|
#+-------------------+------+