Spark中的时间戳转换不正确[重复]
Posted
技术标签:
【中文标题】Spark中的时间戳转换不正确[重复]【英文标题】:Incorrect Timestamp conversion in Spark [duplicate] 【发布时间】:2018-09-28 16:11:04 【问题描述】:我正在尝试将字符串(UTC 时间)转换为时间戳。
List<String> list = new ArrayList<String>();
list.add("2018-03-11 02:00:00");
list.add("2018-03-11 03:00:00");
sparkSession.createDataset(list, Encoders.STRING()).select(to_timestamp(col("value").cast(DataTypes.TimestampType), "yyyy-MM-dd HH:mm:ss")).show();
这个的输出是
+-------------------+
| value|
+-------------------+
|2018-03-11 03:00:00|
|2018-03-11 03:00:00|
+-------------------+
我可以看到它应用了 DST (CST),在我处理 UTC 字符串时不应该应用它。
有什么想法吗?
【问题讨论】:
【参考方案1】:您正在使用没有时区组件的日期时间字符串。当您将字符串转换为时间戳并显示时。我猜它是在本地时区显示的。
【讨论】:
以上是关于Spark中的时间戳转换不正确[重复]的主要内容,如果未能解决你的问题,请参考以下文章
将 unix_timestamp 转换为 spark 中的普通时间戳(以秒为单位)