我正在尝试使用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
提前致谢。
答案 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