火花中的日期转换

时间:2016-12-18 06:31:01

标签: apache-spark

我的文本文件包含如下数据:

1000;xxx;08-09-2016 07:30;09-09-2016 10:35;yyy
1001;yyy;09-09-2016 10:36;10-10-2016 11.37;xxx

我希望将日期转换为yyyy-mm-dd格式。

1000;xxx;2016-09-08 07:30;2016-09-09 10:35;yyy
1001;yyy;2016-09-09 10:36;2016-10-10 11.37;xxx

1 个答案:

答案 0 :(得分:1)

如果您使用Java或Scala进行投影,则可以使用java.time库。

Scala示例:

import java.time.format.DateTimeFormatter
import java.time.{LocalDateTime, ZoneId, ZoneOffset}

val formatter1 = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm").withZone(ZoneId.of("UTC"))
val formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").withZone(ZoneId.of("UTC"))

val time = "08-09-2016 07:30"

val timestamp = LocalDateTime.parse(time, formatter1).toInstant(ZoneOffset.UTC)

val reformattedTime = formatter2.format(timestamp) // "2016-09-08 07:30"