Tengo un problema al conectarme a mi postgresql 8.4 db usando el servicio Apache Spark en Bluemix.
Mi código es:
%AddJar https://jdbc.postgresql.org/download/postgresql-8.4-703.jdbc4.jar -f
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sqlContext.load("jdbc", Map("url" -> "jdbc:postgresql://<ip_address>:5432/postgres?
user=postgres&password=<password>", "dbtable" -> "table_name"))
Y me sale el error:
Nombre: java.sql.SQLException
Mensaje: No se encontró un controlador adecuado para jdbc: postgresql: //: 5432 / postgres? User = postgres & password =
He leído y parece que necesito agregar el controlador JDBC a la ruta de clase de Spark. No tengo idea de cómo hacer esto en el servicio Bluemix Apache Spark.
Respuestas
0 para la respuesta № 1Actualmente hay un problema al agregar controladores JDBC a Bluemix Apache Spark. El equipo está trabajando para resolverlo. Puedes seguir el progreso aquí: https://developer.ibm.com/answers/questions/248803/connecting-to-postgresql-db-using-jdbc-from-bluemi.html
0 para la respuesta № 2
Posiblemente echar un vistazo aquí? Creo que la función load () está en desuso en Spark 1.4 [fuente].
Podrías probar esto en su lugar
val url = "jdbc:postgresql://:5432/postgres"
val prop = new java.util.Properties
prop.setProperty("user","postgres")
prop.setProperty("password","xxxxxx")
val table = sqlContext.read.jdbc(url,"table_name",prop)
La URL puede o no requerir la versión completa, es decir
jdbc: postgresql: //: 5432 / postgres? usuario = postgres y contraseña = contraseña
0 para la respuesta № 3
Esto funcionó para mí en Bluemix
% AddJar https://jdbc.postgresql.org/download/postgresql-9.4.1208.jar -F
val sqlContext = nuevo org.apache.spark.sql.SQLContext (sc);
val df = sqlContext.read.format ("jdbc"). options (Map ("url" -> "jdbc: postgresql: //: /", "user" -> "", "password" -> "", "dbtable" -> "", "driver" -> "org.postgresql.Driver")). load ()