/ / Conexión a una base de datos postgresql utilizando JDBC desde el servicio Bluemix Apache Spark - postgresql, jdbc, apache-spark, ipython-notebook, ibm-cloud

Conexión a una base de datos postgresql utilizando JDBC desde el servicio Bluemix Apache Spark - postgresql, jdbc, apache-spark, ipython-notebook, ibm-cloud

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 № 1

Actualmente 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 ()