Spark - 将JDBC驱动程序JAR添加到Google Dataproc

BAR*_*BAR 5 jdbc apache-spark google-cloud-platform apache-spark-sql google-cloud-dataproc

我试图通过JDBC写:

df.write.jdbc("jdbc:postgresql://123.123.123.123:5432/myDatabase", "myTable", props)
Run Code Online (Sandbox Code Playgroud)

星火文档解释了配置选项spark.driver.extraClassPath不能被用来添加JDBC驱动程序的JAR文件,如果在客户端模式下运行(这是Dataproc运行在模式),因为JVM已经启动.

我尝试在Dataproc的submit命令中添加JAR路径:

gcloud beta dataproc jobs submit spark ... 
     --jars file:///home/bryan/org.postgresql.postgresql-9.4-1203-jdbc41.jar
Run Code Online (Sandbox Code Playgroud)

我还添加了加载驱动程序的命令:

  Class.forName("org.postgresql.Driver")
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误:

java.sql.SQLException: No suitable driver found for jdbc:postgresql://123.123.123.123:5432/myDatabase 
Run Code Online (Sandbox Code Playgroud)

zer*_*323 4

根据我的经验,添加driver属性通常可以解决问题:

props.put("driver", "org.postgresql.Driver")
db.write.jdbc(url, table, props)
Run Code Online (Sandbox Code Playgroud)