Добавление двух меток времени в фрейм данных - PullRequest
0 голосов
/ 07 июня 2018

В настоящее время я добавляю столбец с меткой времени к существующему фрейму данных в моем скрипте Spark.Это выглядит следующим образом:

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

Это создает новый столбец в выводе с именем time_added с отметкой времени.

Теперь я хочу добавить две отметки времени (одна для того, когда вещь была добавлена,и один для текущей метки времени)

Однако, добавив строку:

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

Это создает только один новый столбец с именем "new", но столбец с именем time_added больше не существует.

Есть ли способ создать два новых столбца с двумя разными временными метками?

Спасибо

1 Ответ

0 голосов
/ 07 июня 2018

Проблема здесь в том, что вы должны использовать уже добавленный фрейм данных для добавления нового столбца - 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|
+-----+----------+----------+   
...