spark.driver.extraClassPath多个罐子

Fra*_* B. 5 jdbc apache-spark pyspark

我正在尝试使用Spark通过Python在同一会话中访问(通过JDBC)PostGres数据库和MSSQL数据库.在spark-defaults.conf文件中,我可以让一个或另一个工作但不能同时工作.

这两个独立工作:

spark.driver.extraClassPath /Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/postgresql-9.4.1208.jre6.jar

spark.driver.extraClassPath /Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/sqljdbc4.jar 
Run Code Online (Sandbox Code Playgroud)

我尝试了这三个并且都不起作用(我得到"没有合适的驱动程序"错误):

spark.driver.extraClassPath /Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/

spark.driver.extraClassPath /Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/postgresql-9.4.1208.jre6.jar sqljdbc4.jar

spark.driver.extraClassPath /Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/postgresql-9.4.1208.jre6.jar /Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/sqljdbc4.jar
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Yuv*_*kov 8

如果您想使用多个罐子,您需要将它们链接在一起.如果你正在运行Linux,那么连锁运营商就是:在Windows上;.

例如,在Linux上你extraClassPath会是:

spark.driver.extraClassPath /Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/postgresql-9.4.1208.jre6.jar:/Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/sqljdbc4.jar
Run Code Online (Sandbox Code Playgroud)

在Windows上:

spark.driver.extraClassPath /Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/postgresql-9.4.1208.jre6.jar;/Users/myusername/spark-1.6.1-bin-hadoop2.4/lib/sqljdbc4.jar
Run Code Online (Sandbox Code Playgroud)