Spark: Как создать новый столбец строки даты из столбца эпохи? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть кадр данных Apache Spark 2.x со следующими столбцами:

scala> df.printSchema
root
 |-- id: string (nullable = true)
 |-- countryCode: string (nullable = true)
 |-- detail: string (nullable = true)
 |-- epoch: long (nullable = true)

Я хотел бы создать новый столбец со строкой даты в формате "гггг-ММ-дд" на основевременная метка эпохи (время UTC Unix).Затем я буду использовать строку даты в качестве столбца разделения.

Как создать столбец со строкой даты?Чтобы выполнить только преобразование в Java, я бы использовал SimpleDateFormat("yyyy-MM-dd"), но я не уверен, как также создать новый столбец.

1 Ответ

0 голосов
/ 19 октября 2018

Метод from_unixtime должен быть тем, что вы ищете.Например:

import org.apache.spark.sql.functions._

val df = Seq(
  (1, "1538384400"),
  (2, "1538481600"),
  (3, "1538588200")
).toDF("id", "epoch")

df.withColumn("date", from_unixtime($"epoch", "yyyy-MM-dd")).
  show
// +---+----------+----------+
// | id|     epoch|      date|
// +---+----------+----------+
// |  1|1538384400|2018-10-01|
// |  2|1538481600|2018-10-02|
// |  3|1538588200|2018-10-03|
// +---+----------+----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...