【发布时间】:2018-02-21 20:50:35
【问题描述】:
在将 BIGINT 转换为 TIMESTAMP 时,垃圾值即将到来。请参阅下面的查询。 感谢任何帮助。
scala> spark.sql("select cast(cast(cast(CAST('2015-11-15 18:15:06.51' AS TIMESTAMP) as double)*1000 + cast('64082' as double) as bigint) as timestamp) " ).show(truncate=false)
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|CAST(CAST(((CAST(CAST(2015-11-15 18:15:06.51 AS TIMESTAMP) AS DOUBLE) * CAST(1000 AS DOUBLE)) + CAST(64082 AS DOUBLE)) AS BIGINT) AS TIMESTAMP)|
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|47843-07-20 09:36:32.0 |
+-----------------------------------------------------------------------------------------------------------------------------------------------+
【问题讨论】:
-
为什么结果是“垃圾值”?你期待什么结果?而且,更重要的是,您做了什么来证明(通过非常简单的代码示例)预期结果实际上是一个合理的预期?