PySpark没有为jdbc找到合适的驱动程序:mysql:// dbhost

时间:2015-06-17 23:32:38

标签: apache-spark apache-spark-sql pyspark

我正在尝试将我的数据帧写入mysql表。我在尝试写作时得到No suitable driver found for jdbc:mysql://dbhost

作为预处理的一部分,我从同一个DB中的其他表中读取并且没有问题。我可以完整运行并将行保存到镶木地板文件中,因此它肯定是从mysql DB中读取的。

我正在提交:

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"})

2 个答案:

答案 0 :(得分:2)

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

解决方法是将mysql-connector-java-5.1.35-bin.jar复制到与驱动程序相同位置的每台计算机上。

答案 1 :(得分:1)

您可能在Spark SQL中触发了一个错误。似乎有一个修复,提交是pattern=`tr ',' '|' < "refer.txt"` tr ',' '\n' < "main.txt" | egrep "$pattern" | tr '\n' ',' (参见https://mail-archives.apache.org/mod_mbox/spark-commits/201505.mbox/%3C6ec5793fb810447388384f3ac03ca670@git.apache.org%3E)并且它将问题描述为“问题出在e991255e7203a0f7080efbd71f57574f46076711类中,无法访问由Spark ClassLoader加载的驱动程序“。可能最简单的解决方案是从master中尝试最新版本,或者没有那样樱桃 - 选择提交到你的分支。