Postgresql Spark找不到postgres jdbc驱动程序

Postgresql Spark找不到postgres jdbc驱动程序,postgresql,jdbc,apache-spark,driver,Postgresql,Jdbc,Apache Spark,Driver,编辑:请参见末尾的编辑 首先,我在Amazon EMR上使用Spark 1.5.2,并在我的postgres数据库中使用Amazon RDS。第二,我是Spark、Hadoop和MapReduce这个世界上的新手 基本上,我的问题和这家伙的问题是一样的: 因此,数据帧已加载,但当我尝试通过df.show对其进行评估时,其中df是数据帧,这给了我一个错误: java.sql.SQLException: No suitable driver found for jdbc:postgresql://

编辑:请参见末尾的编辑

首先,我在Amazon EMR上使用Spark 1.5.2,并在我的postgres数据库中使用Amazon RDS。第二,我是Spark、Hadoop和MapReduce这个世界上的新手

基本上,我的问题和这家伙的问题是一样的:

因此,数据帧已加载,但当我尝试通过df.show对其进行评估时,其中df是数据帧,这给了我一个错误:

java.sql.SQLException: No suitable driver found for jdbc:postgresql://mypostgres.cvglvlp29krt.eu-west-1.rds.amazonaws.com:5432/mydb
我应该注意,我是这样开始spark的:

spark-shell --driver-class-path /home/hadoop/postgresql-9.4.1207.jre7.jar
这些解决方案建议将jar交付到工作节点上,并以某种方式在其上设置类路径,我真的不知道该怎么做。但是后来他们说Spark 1.4中显然解决了这个问题,我使用的是1.5.2,但仍然存在这个问题,所以发生了什么

编辑:看起来我解决了这个问题,但是我仍然不太明白为什么这样做有效,而上面的事情不行,所以我想我现在的问题是为什么这样做:

spark-shell --driver-class-path /home/hadoop/postgresql-9.4.1207.jre7.jar --conf spark.driver.extraClassPath=/home/hadoop/postgresql-9.4.1207.jre7.jar --jars /home/hadoop/postgresql-9.4.1207.jre7.jar
解决问题?我只是将路径作为参数添加到了更多的标志中。

spark shell-驱动程序类路径-罐。。。之所以有效,是因为-jar中列出的所有jar文件都自动分布在集群中

或者你可以使用

sparkshell-packagesorg.postgresql:postgresql:9.4.1207.jre7 并将驱动程序类指定为DataFrameReader/DataFrameWriter的选项

或者甚至手动将所需的jar复制到worker中,并将它们放在类路径的某个位置。

spark shell-驱动程序类路径-罐。。。之所以有效,是因为-jar中列出的所有jar文件都自动分布在集群中

或者你可以使用

sparkshell-packagesorg.postgresql:postgresql:9.4.1207.jre7 并将驱动程序类指定为DataFrameReader/DataFrameWriter的选项

或者甚至手动将所需的jar复制到worker,并将它们放在类路径的某个位置

val df = sqlContext.read.format("jdbc").options(Map(
  "url" -> url, "dbtable" -> table, "driver" -> "org.postgresql.Driver"
)).load()