Scala 将日期转换为时间戳时出现问题,从unix_时间戳转换为Spark日期时返回null
将日期转换为时间戳时出现问题,从unix_时间戳到Spark日期转换为时间戳时返回nullScala 将日期转换为时间戳时出现问题,从unix_时间戳转换为Spark日期时返回null,scala,datetime,apache-spark,null,unix-timestamp,Scala,Datetime,Apache Spark,Null,Unix Timestamp,将日期转换为时间戳时出现问题,从unix_时间戳到Spark日期转换为时间戳时返回null scala> import org.apache.spark.sql.functions.unix_timestamp scala> spark.sql("select from_unixtime(unix_timestamp(('2017-08-13 00:06:05'),'yyyy-MM-dd HH:mm:ss')) AS date").show(false) +----+ |date
scala> import org.apache.spark.sql.functions.unix_timestamp
scala> spark.sql("select from_unixtime(unix_timestamp(('2017-08-13 00:06:05'),'yyyy-MM-dd HH:mm:ss')) AS date").show(false)
+----+
|date|
+----+
|null|
+----+
问题是智利时间的变化,非常感谢
+-------------------+---------+
| DateIntermedia|TimeStamp|
+-------------------+---------+
|13-08-2017 00:01:07| null|
|13-08-2017 00:10:33| null|
|14-08-2016 00:28:42| null|
|13-08-2017 00:04:43| null|
|13-08-2017 00:33:51| null|
|14-08-2016 00:28:08| null|
|14-08-2016 00:15:34| null|
|14-08-2016 00:21:04| null|
|13-08-2017 00:34:13| null|
+-------------------+---------+
解决方案,设置时区:
spark.conf.set("spark.sql.session.timeZone", "UTC-6")
我在Spark 2.2上尝试了你的代码,它的工作原理与预期相符。您使用的是什么版本?Spark 2.3.1和Scala 2.11.8。问题只发生在08月和13或14日,其他日期运行良好您的系统是否碰巧在智利时区运行?智利的夏季时间(DST)于2017年8月13日开始。时钟从00:00转为01:00,所以那天晚上没有00:06:05。谢谢你。问题:13-08-2017 00:01:07 |空\n 14-08-2016 00:28:42 |空。这与时间的变化是一致的。