2

我在我的虚拟机 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()

谁能告诉我我在这里犯了什么错误?

4

1 回答 1

4

SparkSession 从 Spark 2.0 开始可用,因此您应该SQLContext改用(或将 Spark 升级到最新最好的2.1.1)。

引用 Spark 1.6.0 的起点: SQLContext

Spark SQL 中所有功能的入口点是SQLContext类或其后代之一。

除了基本 SQLContext 之外,您还可以创建 HiveContext,它提供基本 SQLContext 提供的功能的超集。

于 2017-06-27T07:25:59.510 回答