我在我的VM,Cloudera机器上使用Spark 1.6.0。
我正在尝试从Spark shell向Hive表中输入一些数据。 为此,我尝试使用SparkSession。但是下面的导入无效。
scala> import org.apache.spark.sql.SparkSession
<console>:33: error: object SparkSession is not a member of package org.apache.spark.sql
import org.apache.spark.sql.SparkSession
没有它,我不能执行这个陈述:
val spark = SparkSession.builder.master("local[2]").enableHiveSupport().config("hive.exec.dynamic.partition","true").config("hive.exec.dynamic.partition.mode", "nonstrict").config("spark.sql.warehouse.dir", warehouseLocation).config("hive.metastore.warehouse.dir","/user/hive/warehouse").getOrCreate()
<console>:33: error: not found: value SparkSession
val spark = SparkSession.builder.master("local[2]").enableHiveSupport().config("hive.exec.dynamic.partition","true").config("hive.exec.dynamic.partition.mode", "nonstrict").config("spark.sql.warehouse.dir", warehouseLocation).config("hive.metastore.warehouse.dir","/user/hive/warehouse").getOrCreate()
有谁能告诉我我在这里犯了什么错误?
答案 0 :(得分:4)
SparkSession
is available as of Spark 2.0所以您应该使用SQLContext
代替(或将Spark升级到最新且最好的2.1.1)。
引用Spark 1.6.0的Starting Point: SQLContext:
Spark SQL中所有功能的入口点是
SQLContext
类,或其后代之一。除了基本的SQLContext之外,您还可以创建一个HiveContext,它提供了基本SQLContext提供的功能的超集。