当前位置: 首页 > news >正文

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目录下去:
在这里插入图片描述
就可以了,修改后运行一下代码,测试一下:
在这里插入图片描述

http://www.lryc.cn/news/368308.html

相关文章:

  • 对称加密系统解析
  • 初识 java 2
  • 云端狂飙:Django项目部署与性能优化的极速之旅
  • GDPU JavaWeb 大结局篇(持续更新中)
  • Linux系统信息的查看
  • LE Audio音频广播新功能Auracast介绍
  • 一文学习yolov5 实例分割:从训练到部署
  • 【设计模式】行为型设计模式之 策略模式学习实践
  • lua中大数相乘的问题
  • 第一个SpringBoot项目
  • Android 10.0 Launcher修改density禁止布局改变功能实现
  • CAN协议简介
  • (二)JSX基础
  • GB 38469-2019 船舶涂料中有害物质限量检测
  • 汇编:数组-寻址取数据
  • ROS自带的OpenCV库和自己安装版本冲突问题现象及解决方法
  • html+CSS+js部分基础运用19
  • 探索 Debian 常用命令:掌握 Linux 系统管理的重要一步
  • 「C系列」C 作用域规则
  • 【机器学习基础】Python编程10:五个实用练习题的解析与总结
  • 【设计模式】结构型设计模式之 门面模式
  • MAC地址简介
  • 五种网络IO模型
  • VSCode超过390万下载的请求插件
  • 前端 JS 经典:下载的流式传输
  • k8s面试题大全,保姆级的攻略哦(三)
  • 从年金理论到杠杆效应,再到财务报表与投资评估指标
  • K8S - 用kubectl远程访问内网的k8s集群
  • STM32F103C8移植uCOSIII并以不同周期点亮两个LED灯(HAL库方式)【uCOS】【STM32开发板】【STM32CubeMX】
  • 【c语言】qsort函数及泛型冒泡排序的模拟实现