2015-06-17 3 views
4

Я пытаюсь написать свой файл данных в таблицу mysql. Я получаю No suitable driver found for jdbc:mysql://dbhost, когда я пытаюсь написать.PySpark Не найдено подходящего драйвера для jdbc: mysql: // dbhost

В качестве части предварительной обработки я читал из других таблиц в одной БД и не имел никаких проблем с этим. Я могу выполнить полный запуск и сохранить строки в файле паркета, поэтому он определенно читает из базы данных 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"})

ответ

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

кажется, что вы, возможно, вызвало ошибку в Спарк SQL. Кажется, что есть исправление, фиксация - e991255e7203a0f7080efbd71f57574f46076711 (см. https://mail-archives.apache.org/mod_mbox/spark-commits/201505.mbox/%[email protected]%3E), и она описывает проблему как «Проблема в классе java.sql.DriverManager, который не может получить доступ к драйверам, загружаемым Spark ClassLoader». Наверное, самым простым решением является попытка использовать последнюю версию от мастера или не выполнить эту настройку в вашей ветке.