spark.driver.extraClassPath多个罐子

时间:2016-03-31 19:12:30

标签: 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 

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

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

提前致谢。

1 个答案:

答案 0 :(得分:7)

如果您想使用多个罐子,您需要将它们链接在一起。如果您正在运行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

在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