一:代码:
def main(args: Array[String]): Unit = {
val spark: SparkSession = SparkSession
.builder()
.enableHiveSupport()
.master("local[*]")
.appName("sql")
.getOrCreate()
spark.sql("select count(*) from dws.dws_warn_dt ;").show(10)
运行后,报错:
我们点进207行看一下,发现是common.common-lang发生了conflict,所以我们需要去排除掉3.3.1这个版本。
二:借助maven helper exclude
1,plugin 里面安装 maven helper
2,找到冲突的jar【找到对应的版本】
我们看到是在spark-sql里面我们用的是3.8.1和3.9的,和3.3.1的冲突,而3.3.1在jieba里面,导致我们出错,所以我们在jieba里面排除就可以啦。最后附上pom文件:
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.3.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.27</version>
</dependency>
<dependency>
<groupId>com.huaban</groupId>
<artifactId>jieba-analysis</artifactId>
<version>1.0.2</version>
<exclusions>
<exclusion>
<!--这里spark-sql里面的和这里冲突了,需要手动排除-->
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</exclusion>
</exclusions>
</dependency>