如何创建带有增加的时间戳列的数据帧?

时间:2019-11-27 20:30:04

标签: dataframe pyspark

我可以在数据框列中插入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)

enter image description here

1 个答案:

答案 0 :(得分:1)

您无法获得每行的时间戳,该时间戳在DataFrame上是唯一的,具体取决于Spark处理该行的时间,因为数据是分布式的,因此您永远无法控制该行的处理时间。话虽这么说:

  1. 如果您希望将当前时间戳记添加为一列,则使用pyspark.sql.functions.current_timestamp会获得更好的里程。

  2. 如果要使用索引增加的列,请使用pyspark.sql.functions.monotonically_increasing_id()