我可以在数据框列中插入timestamp
。但是我希望timestamp
列是唯一的值(或者本质上以毫秒为单位增加)。我目前拥有的-
from datetime import datetime
from pyspark.sql.functions import lit
df = spark.createDataFrame(["10","11","13"], "string").toDF("age")
df = df.withColumn("ts", lit(datetime.now()))
display(df)
答案 0 :(得分:1)
您无法获得每行的时间戳,该时间戳在DataFrame上是唯一的,具体取决于Spark处理该行的时间,因为数据是分布式的,因此您永远无法控制该行的处理时间。话虽这么说:
如果您希望将当前时间戳记添加为一列,则使用pyspark.sql.functions.current_timestamp
会获得更好的里程。
如果要使用索引增加的列,请使用pyspark.sql.functions.monotonically_increasing_id()
。