【问题标题】:Adding two timestamps to a dataframe向数据帧添加两个时间戳
【发布时间】:2018-11-17 18:02:45
【问题描述】:

我目前正在向我的 Spark 脚本中的现有数据框添加一个带有时间戳的列。它看起来像这样:

val log = Source.fromArg(args, "log").read 
var added = log.withColumn("time_added", lit(unix_timestamp()))

这会在输出中生成一个名为 time_add 的新列,并带有时间戳。

我现在想添加两个时间戳(一个用于添加事物的时间,一个用于当前时间戳)

但是,添加以下行:

var int = log.withColumn("new", lit(unix_timestamp()))

这只会产生一个名为“new”的新列,但不再有一个名为 time_add 的列。

有没有办法生成两个具有两个不同时间戳的新列?

谢谢

【问题讨论】:

    标签: scala apache-spark dataframe timestamp


    【解决方案1】:

    这里的问题是您必须使用已添加的数据框来添加新列 - added

    val df = Seq("a").toDF()
    
    val added = df.withColumn("time_added", lit(unix_timestamp()))
    val addednew = added.withColumn("new", lit(unix_timestamp() + 100))
    
    newtimeDF.show(false)
    
    //OR
    
    val added2 = df.withColumn("time_added", lit(unix_timestamp())).withColumn("new", lit(unix_timestamp() + 100))
    addtimedf2.show(false)
    
    +-----+----------+----------+
    |value|time_added|new       |
    +-----+----------+----------+
    |a    |1528398456|1528398556|
    +-----+----------+----------+   
    

    【讨论】:

      猜你喜欢
      • 2019-09-08
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多