2017-06-27 4 views
0

J'utilise Spark 1.6.0 sur ma machine VM, Cloudera.Pourquoi l'importation de SparkSession dans spark-shell échoue-t-elle avec "l'objet SparkSession n'est pas membre du package org.apache.spark.sql"?

J'essaie d'entrer des données dans la table Hive à partir du shell Spark. Pour ce faire, j'essaie d'utiliser SparkSession. Mais l'importation ci-dessous ne fonctionne pas.

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 

Et sans cela, je ne peux pas exécuter cette instruction:

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() 

Quelqu'un peut-il me dire quelle erreur que je fais ici?

+0

Eh bien, êtes-vous sûr à 100% que vous avez Spark2? –

+0

Quelle version d'étincelle utilisez-vous? Avez-vous assuré que vous pourriez ouvrir la coquille d'étincelle sans aucune erreur? –

+0

@PraveenKumarKrishnaiyer Il n'y a aucune erreur quand j'ouvre la coquille d'étincelle. – Sidhartha

Répondre

4

SparkSessionis available as of Spark 2.0 de sorte que vous devriez utiliser SQLContext au lieu (ou mettre à jour votre Spark le dernier et le plus grand 2.1.1).

Starting Point: SQLContext de Spark Citation 1.6.0:

Le point d'entrée dans toutes les fonctionnalités dans SQL Spark est la classe SQLContext, ou l'un de ses descendants. Outre le SQLContext de base, vous pouvez également créer un HiveContext, qui fournit un sur-ensemble des fonctionnalités fournies par le SQLContext de base.