是否可以在SparkSQL(1.3.0)中操作时间戳/日期?

时间:2015-03-24 11:06:19

标签: date timestamp apache-spark apache-spark-sql

由于我是Spark(1.3.0)的新手,我正在试图找出可以用它做什么,特别是Spark SQL。

我遇到了时间戳/日期格式,在操作这些数据类型时我无法通过这个障碍。

这些数据类型是否有可用的操作?

目前我所能做的只是从字符串到时间戳的简单演员:

  val sqlContext = new org.apache.spark.sql.SQLContext(sc)
  import sqlContext.implicits._
  case class Log(visitor: String, visit_date: String, page: String)
  val log = (triple.map(p => Log(p._1,p._2,p._3))).toDF()
  log.registerTempTable("logs")
  val logSessions= sqlContext.sql("SELECT visitor" +
  "                                    ,cast(visit_date as timestamp)" +
  "                                    ,page" +
  "                                FROM logs"
  )
  logSessions.foreach(println)

我正在尝试在此时间戳上使用不同的“自定义SQL”操作(从字符串中转换)但我无法获得任何错误。

例如:我可以在时间戳上添加30分钟吗?怎么样?

也许我错过了一些东西,但我找不到关于这个主题的任何文档。

提前致谢!

FF

1 个答案:

答案 0 :(得分:1)

我正在寻找同样的事情。 Spark 1.5增加了一些内置函数: https://databricks.com/blog/2015/09/16/spark-1-5-dataframe-api-highlights-datetimestring-handling-time-intervals-and-udafs.html

但对于以前的版本和特定的looke,需要实现一个UDF。