Apache spark Spark:如何从历元列创建新的日期字符串列?

Apache spark Spark:如何从历元列创建新的日期字符串列?,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我有一个Apache Spark 2.x数据框架,其中包含以下列: scala> df.printSchema root |-- id: string (nullable = true) |-- countryCode: string (nullable = true) |-- detail: string (nullable = true) |-- epoch: long (nullable = true) 我想根据历元时间戳(Unix UTC时间)创建一个新列,其中包含“yy

我有一个Apache Spark 2.x数据框架,其中包含以下列:

scala> df.printSchema
root
 |-- id: string (nullable = true)
 |-- countryCode: string (nullable = true)
 |-- detail: string (nullable = true)
 |-- epoch: long (nullable = true)
我想根据历元时间戳(Unix UTC时间)创建一个新列,其中包含“yyyy-MM-dd”格式的日期字符串。然后,我将使用日期字符串作为分区列

如何使用日期字符串创建列?要仅在Java中执行转换,我将使用SimpleDataFormat(“yyyy-MM-dd”),但我不确定如何创建新列。

方法应该是您要寻找的。例如:

import org.apache.spark.sql.functions_
val df=Seq(
(1, "1538384400"),
(2, "1538481600"),
(3, "1538588200")
).toDF(“id”、“时代”)
df.withColumn(“日期”,from_unixtime($“epoch”,“yyyy-MM-dd”))。
显示
// +---+----------+----------+
//| id |纪元|日期|
// +---+----------+----------+
// |  1|1538384400|2018-10-01|
// |  2|1538481600|2018-10-02|
// |  3|1538588200|2018-10-03|
// +---+----------+----------+

尝试了
df.withColumn