我在使用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服务中执行此操作。
答案 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()