spark连接mysql出现java.math.BigInteg

2021-12-04  本文已影响0人  大空翼123

  在Spark连接mysql数据库进行查询数据时遇到这样一个坑

val df:DataFrame = spark.read.format("jdbc")

.option("url", "jdbc:mysql://localhost:3306/leetcode")

.option("driver", "com.mysql.jdbc.Driver")

.option("user", "root")

.option("password", "123456")

.option("dbtable", "users")

.load()

Exception in thread "main" java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long

但是检查数据库并未有BigInteger和Long类型  

之后测试连接虚拟机上的mysql是正常的

那么问题到底出现在哪儿呢如果出现以上问题,大家就应该注意了,是不是数据库版本与mysql-connector.jar包的版本不兼容造成的。本人用的是Mysql8.0.11免安装版本,虚拟机的Mysql版本为5.7.28,出现问题时的Maven依赖中jar包版本为5.1.26,更换为5.1.47后解决了该问题。希望能够帮助到遇到这类问题的朋友

直接在pom.xml文件中修改版本

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.47</version>

</dependency>

上一篇 下一篇

猜你喜欢

热点阅读