Spark:java.sql.SQLException:找不到适用于jdbc:postgresql:// localhost / postgres的驱动程序

时间:2018-06-20 20:28:23

标签: postgresql apache-spark jdbc

在我的spark应用程序中,我尝试使用以下行连接到本地Postgres数据库:

val conn = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "postgres", "*Qwerty#")

Postgres服务器在端口5432上运行(默认)。我也尝试过包括港口。 我也尝试过Class.forName("org.postgresql.Driver"),但是它抛出ClassNotFoundException。我已经确定驱动程序在ClassPath中。

我在本地模式下运行spark。

但是我遇到了以上异常。

我已经通过sbt包含了jdbc驱动程序,如此处所述: https://mvnrepository.com/artifact/org.postgresql/postgresql/42.2.2

2 个答案:

答案 0 :(得分:1)

因此,问题在于执行者无法访问驱动程序jar。

因此使用spark.jars配置属性传递驱动程序jar即可解决该问题。

它在spark文档here中:

  

以逗号分隔的jar列表,​​包括在驱动程序和执行程序上   类路径。允许使用globs。

答案 1 :(得分:0)

您也可以尝试以下代码:

  

属性dbProperties = new Properties();

     

dbProperties.put(“ driver”,“ org.postgresql.Driver”);

     

dbProperties.put(“ user”,“ postgres”);

     

dbProperties.put(“ password”,“ * Qwerty#”);

     

val conn =   DriverManager.getConnection(“ jdbc:postgresql:// localhost:5432 / postgresDB”,dbProperties);