pyspark中使用mysql jdbc报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决

报错信息:

py4j.protocol.Py4JJavaError: An error occurred while calling o33.load.
: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

我的解决方法:
这个报错就是提示你找不到jar包,所以你需要去下载一个和你mysql版本匹配的jdbc connector包,下载地址:https://downloads.mysql.com/archives/c-j/
我的mysql最开始是8.0.36,发现没有这个jar包所以就卸载了这个mysql然后重装了8.0.33,安装教程https://blog.csdn.net/qq_42108074/article/details/134767511
都安装完成后,将jar包拖进你spark路径/jars目录下就开始解决这个报错

方法一:(这个方法只针对pyspark,我不清楚对后面全局是否有影响)

在运行pyspark时主动加上你的jar包,我的jar包目录是/usr/local/spark/jars/mysql-connector-java-8.0.33/mysql-connector-j.8.0.33.jar
所以我运行pyspark命令如下:

./bin/pyspark --jars "/usr/local/spark/jars/mysql-connector-java-8.0.33/mysql-connector-j-8.0.33.jar"

在这里插入图片描述
测试代码:
要先在mysql中添加数据库和表,再运行下面这个代码

>>> jdbcDF=spark.read.format("jdbc").option("driver","com.mysql.cj.jdbc.Driver").option("url","jdbc:mysql://localhost:3306/spark").option("dbtable","student").option("user","root").option("password","你的密码").load()
>>> jdbcDF.show()

运行结果:
在这里插入图片描述
我认为这个方法是局部的,也就是你每次打开都要加上jar包,但是具体不知道对全局有没有用,可以测试一下

方法二:(应该是全局有效的)改名字

直接将你的jdbc connector里面的jar文件放在spark路径/jars下面,原来的jar包名称是mysql-connector-j-8.0.33.jar,我把他改成了mysql-connector-java-8.0.33.jar,然后就可以了:
在这里插入图片描述
复制到jars目录下去:
在这里插入图片描述
就可以了,修改后运行一下代码,测试一下:
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值