spark unix_timestamp数据类型不匹配

时间:2016-09-01 21:30:33

标签: apache-spark apache-spark-sql distributed-computing unix-timestamp bigdata

有人可以帮我指导我需要从from_unixtime提交哪种数据类型或格式,以使spark from_unixtime()函数正常工作?

当我尝试以下操作时,它可以正常工作,但不会响应current_timestamp。

from_unixtime(current_timestamp())

回复如下:

fromunixtime(currenttimestamp(),yyyy-MM-dd HH:mm:ss)

当我尝试输入

from_unixtime(1392394861,"yyyy-MM-dd HH:mm:ss.SSSS")

以上只是因类型不匹配而失败:

  

错误:类型不匹配;    发现:Int(1392394861)    必需:org.apache.spark.sql.Column                 from_unixtime(1392394861,“yyyy-MM-dd HH:mm:ss.SSSS”)

我错过了什么?我尝试了很多不同的东西,并尝试阅读使用spark中的日期/时间的文档,我尝试过的每个例子都因类型不匹配而失败。

1 个答案:

答案 0 :(得分:3)

使用lit()创建一个文字值列,如下所示:

from_unixtime(lit(1392394861), "yyyy-MM-dd HH:mm:ss.SSSS")

或者,如零323所述:

from_unixtime(current_timestamp().cast("long"))