实验使用环境为spark-3.0.0-preview2,教程观看的版本为spark1.6,spark2.0开始对sql进行改进,用sparksession实现hivecontext和sqlcontext统一,合并dataframe和datasets等,按照老的教程会引起问题。
一. SQLContext报红,找不到依赖包。
解决办法:在pom中添加依赖:
<!--导入spark sql依赖-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.0.0-preview2</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>2.4.6</version>
</dependency>
二. 生成sparkSession实例时提示Required type:SparkContext,Provided:JavaSparkContext
解决办法:通过toSparkContext方法转化:
JavaSparkContext scc = new JavaSparkContext(conf);
SparkContext sc = JavaSparkContext.toSparkContext(scc);
三. 没有DataFrame类型