使用Bluemix Apache Spark服务中的JDBC连接到postgresql数据库

时间:2016-01-20 09:44:27

标签: postgresql jdbc apache-spark ipython-notebook ibm-cloud

我在使用Bluemix上的Apache Spark服务连接到我的postgresql 8.4 db时遇到问题。

我的代码是:

%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"))

我收到错误:

  

名称:java.sql.SQLException

     

消息:没有为jdbc找到合适的驱动程序:postgresql://:5432 / postgres?user = postgres&amp; password =

我已经阅读过,似乎我需要将JDBC驱动程序添加到Spark类路径中。我不知道如何在Bluemix Apache Spark服务中执行此操作。

3 个答案:

答案 0 :(得分:0)

目前在向Bluemix Apache Spark添加JDBC驱动程序时存在问题。该团队正在努力解决它。您可以在此处关注进度: https://developer.ibm.com/answers/questions/248803/connecting-to-postgresql-db-using-jdbc-from-bluemi.html

答案 1 :(得分:0)

可能看一眼here?我相信在Spark 1.4 [source]中不推荐使用load()函数。

你可以试试这个

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)

网址可能需要也可能不需要完整版本 - 即

  

JDBC:在PostgreSQL://:5432 / postgres的?   用户= postgres的&安培;密码=密码

答案 2 :(得分:0)

这在Bluemix上对我有用

%AddJar https://jdbc.postgresql.org/download/postgresql-9.4.1208.jar -f

val sqlContext = new org.apache.spark.sql.SQLContext(sc);

val df = sqlContext.read.format(&#34; jdbc&#34;)。options(地图(&#34; url&#34; - &gt;&#34; jdbc:postgresql://:/& #34;,&#34;用户&#34; - &gt;&#34;&#34;,&#34;密码&#34; - &gt;&#34;&#34;,&#34; dbtable&# 34; - &gt;&#34;&#34;,&#34;驱动程序&#34; - &gt;&#34; org.postgresql.Driver&#34;))。load()