PySpark 找不到适合 jdbc:mysql://dbhost 的驱动程序
PySpark No suitable driver found for jdbc:mysql://dbhost
我正在尝试将我的数据帧写入 mysql table。当我尝试写入时,我得到 No suitable driver found for jdbc:mysql://dbhost
。
作为预处理的一部分,我从同一个数据库中的其他 table 读取数据,并且没有遇到任何问题。我可以完成完整的 运行 并将行保存到镶木地板文件中,因此它肯定是从 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"})
看来您可能触发了 Spark SQL 中的错误。似乎有一个修复,提交是 e991255e7203a0f7080efbd71f57574f46076711
(见 https://mail-archives.apache.org/mod_mbox/spark-commits/201505.mbox/%3C6ec5793fb810447388384f3ac03ca670@git.apache.org%3E ),它将问题描述为 "The problem is in java.sql.DriverManager
class that can't access drivers loaded by Spark ClassLoader." 可能最简单的解决方案是尝试 master 的最新版本,或者失败cherry-pick 提交到你的分支。
这是一个与类加载器相关的错误。这是它的门票:https://issues.apache.org/jira/browse/SPARK-8463 and this is the pull request for it: https://github.com/apache/spark/pull/6900.
解决方法是将 mysql-connector-java-5.1.35-bin.jar 复制到每台机器上与驱动程序相同的位置。
我正在尝试将我的数据帧写入 mysql table。当我尝试写入时,我得到 No suitable driver found for jdbc:mysql://dbhost
。
作为预处理的一部分,我从同一个数据库中的其他 table 读取数据,并且没有遇到任何问题。我可以完成完整的 运行 并将行保存到镶木地板文件中,因此它肯定是从 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"})
看来您可能触发了 Spark SQL 中的错误。似乎有一个修复,提交是 e991255e7203a0f7080efbd71f57574f46076711
(见 https://mail-archives.apache.org/mod_mbox/spark-commits/201505.mbox/%3C6ec5793fb810447388384f3ac03ca670@git.apache.org%3E ),它将问题描述为 "The problem is in java.sql.DriverManager
class that can't access drivers loaded by Spark ClassLoader." 可能最简单的解决方案是尝试 master 的最新版本,或者失败cherry-pick 提交到你的分支。
这是一个与类加载器相关的错误。这是它的门票:https://issues.apache.org/jira/browse/SPARK-8463 and this is the pull request for it: https://github.com/apache/spark/pull/6900.
解决方法是将 mysql-connector-java-5.1.35-bin.jar 复制到每台机器上与驱动程序相同的位置。