PySpark 找不到适合 jdbc 的驱动程序:mysql://dbhost

Posted

技术标签:

【中文标题】PySpark 找不到适合 jdbc 的驱动程序:mysql://dbhost【英文标题】:PySpark No suitable driver found for jdbc:mysql://dbhost 【发布时间】:2015-06-17 23:32:38 【问题描述】:

我正在尝试将我的数据框写入 mysql 表。当我尝试写作时,我收到了No suitable driver found for jdbc:mysql://dbhost

作为预处理的一部分,我从同一个数据库中的其他表中读取数据,这样做没有问题。我可以完整运行并将行保存到 parquet 文件中,因此它肯定是从 mysql 数据库中读取的。

我正在使用:

spark-submit --conf spark.executor.extraClassPath=/home/user/Downloads/mysql-connector-java-5.1.35-bin.jar --driver-class-path /home/user/Downloads/mysql-connector-java-5.1.35-bin.jar --jars /home/user/Downloads/mysql-connector-java-5.1.35-bin.jar main.py

我正在使用:

df.write.jdbc(url="jdbc:mysql://dbhost/dbname", table="tablename", mode="append", properties="user":"dbuser", "password": "s3cret")

【问题讨论】:

【参考方案1】:

这是一个与类加载器相关的错误。这是它的票:https://issues.apache.org/jira/browse/SPARK-8463,这是它的拉取请求:https://github.com/apache/spark/pull/6900。

一种解决方法是将 mysql-connector-java-5.1.35-bin.jar 复制到每台机器上的驱动程序所在位置。

【讨论】:

“到同一位置的每台机器”?我只有一台机器,司机在一个位置。你这是什么意思?【参考方案2】:

看来您可能触发了 Spark SQL 中的错误。似乎有一个修复,提交是e991255e7203a0f7080efbd71f57574f46076711(参见https://mail-archives.apache.org/mod_mbox/spark-commits/201505.mbox/%3C6ec5793fb810447388384f3ac03ca670@git.apache.org%3E),它将问题描述为“问题出在java.sql.DriverManager 类中,该类无法访问由Spark ClassLoader 加载的驱动程序。”可能最简单的解决方案是尝试 master 的最新版本,或者在您的分支中选择提交失败。

【讨论】:

以上是关于PySpark 找不到适合 jdbc 的驱动程序:mysql://dbhost的主要内容,如果未能解决你的问题,请参考以下文章

如何修复:找不到适合 jdbc:sqlserver 的驱动程序 [重复]

SQLException: 找不到适合 jdbc:postgresql 的驱动程序

使用 DataSource (Java Eclipse) 时“找不到适合 jdbc 的驱动程序”

“找不到适合 jdbc:sqlite 的驱动程序”问题。我究竟做错了啥?

找不到适合 jdbc:amazonaws 的驱动程序

找不到适合 jdbc mysql 的驱动程序?