2017-09-01 113 views
0

我試圖創建使用JavaSparkContext對象SQL上下文對象,因爲它就像參數:構造HiveContext(JavaSparkContext)是未定義的錯誤而創建SQLContext對象

SparkConf sparkConf=new SparkConf().setMaster("local").setAppName("Example"); 
JavaSparkContext sc=new JavaSparkContext(sparkConf); 
SQLContext sqlctx=new HiveContext(sc); 

Eclipse是拋出一個錯誤說:

The constructor HiveContext(JavaSparkContext) is undefined 

但我在互聯網上查找的所有示例,包括文檔都使用JavaSparkContext作爲參數。我錯過了什麼嗎?

Maven依賴:

<dependency> 
<groupId>org.apache.spark</groupId> 
<artifactId>spark-core_2.11</artifactId> 
<version>2.2.0</version> 
<scope>provided</scope> 
</dependency> 
<dependency> 
<groupId>org.apache.spark</groupId> 
<artifactId>spark-hive_2.10</artifactId> 
<version>1.2.0</version> 
<scope>provided</scope> 
</dependency> 

回答

1

你不應該有星火2.2依賴於spark_hive?

<dependency> 
<groupId>org.apache.spark</groupId> 
<artifactId>spark-core_2.11</artifactId> 
<version>2.2.0</version> 
<scope>provided</scope> 
</dependency> 
<dependency> 
<groupId>org.apache.spark</groupId> 
<artifactId>spark-hive_2.10</artifactId> 
<version>2.2.0</version> 
<scope>provided</scope> 
</dependency> 

而且如果你用星火2.2,HiveContext已過時,我認爲,你應該只使用SparkSession爲切入點進行查詢和計算:

從星火SQL升級1.6至2.0

SparkSession現在是Spark的新條目 ,取代舊的SQLContext和HiveContext。注意 表示舊的SQLContext和HiveContext保留後向 的兼容性。可以從SparkSession訪問新的目錄接口 - 數據庫和表訪問上的現有API(如listTables,createExternalTable,dropTempView,cacheTable)將移至此處。

相關問題