Mysql
 sql >> Base de données >  >> RDS >> Mysql

pyspark mysql jdbc load Une erreur s'est produite lors de l'appel de o23.load Aucun pilote approprié

J'ai rencontré "java.sql.SQLException :aucun pilote approprié" lorsque j'ai essayé d'écrire mon script sur MySQL.

Voici ce que j'ai fait pour résoudre ce problème.

Dans script.py

df.write.jdbc(url="jdbc:mysql://localhost:3333/my_database"
                  "?user=my_user&password=my_password",
              table="my_table",
              mode="append",
              properties={"driver": 'com.mysql.jdbc.Driver'})

Ensuite, j'ai exécuté spark-submit de cette façon

SPARK_HOME=/usr/local/Cellar/apache-spark/1.6.1/libexec spark-submit --packages mysql:mysql-connector-java:5.1.39 ./script.py

Notez que SPARK_HOME est spécifique à l'endroit où Spark est installé. Pour votre environnement, ce https://github.com/sequenceiq/docker -spark/blob/master/README.md pourrait aider.

Si tout ce qui précède est déroutant, essayez ceci :
In t.py replace

sqlContext.read.format("jdbc").option("url",url).option("dbtable","people").load()

avec

sqlContext.read.format("jdbc").option("dbtable","people").option("driver", 'com.mysql.jdbc.Driver').load()

Et exécutez-le avec

spark-submit --packages mysql:mysql-connector-java:5.1.39 --master local[4] t.py