如何在使用Spark时在hive中获取TimeStamp数据

时间:2016-10-26 08:33:40

标签: apache-spark hive

val sql = "select time from table"
val data = sql(sql).map(_.getTimeStamp(0).toString)

在hive表中,time&time;类型是timestamp。当我运行这个程序时,它会抛出NullPointerException。

val data = sql(sql).map(_.get(0).toString)

当我更改为上面的代码时,会抛出相同的异常。

有人能告诉我如何使用Spark在hive中获取TimeStamp数据吗? TKS。

1 个答案:

答案 0 :(得分:0)

如果您尝试从Hive表中读取数据,则应使用HiveContext而不是SQLContext。

如果您使用的是Spark 2.0,可以尝试以下操作。

val spark = SparkSession
  .builder()
  .appName("Spark Hive Example")
  .config("spark.sql.warehouse.dir", warehouseLocation)
  .enableHiveSupport()
  .getOrCreate()

import spark.implicits._
import spark.sql

val df = sql("select time from table")
df.select($"time").show()