sql >> Base de Datos >  >> RDS >> Mysql

pyspark mysql jdbc load Se produjo un error al llamar a o23.load No hay un controlador adecuado

Me encontré con "java.sql.SQLException:ningún controlador adecuado" cuando intenté que mi script escribiera en MySQL.

Esto es lo que hice para solucionarlo.

En 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'})

Luego ejecuté spark-submit de esta manera

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

Tenga en cuenta que SPARK_HOME es específico del lugar donde está instalado Spark. Para su entorno, este https://github.com/sequenceiq/docker -spark/blob/master/README.md podría ayudar.

En caso de que todo lo anterior sea confuso, intente esto:
En t.py replace

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

con

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

Y ejecuta eso con

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