spark.driver.extraClassPath 多个罐子

Posted

技术标签:

【中文标题】spark.driver.extraClassPath 多个罐子【英文标题】:spark.driver.extraClassPath Multiple Jars 【发布时间】:2016-03-31 19:12:30 【问题描述】:

我正在尝试通过 Python 使用 Spark 在同一会话中访问(通过 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】:

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

【讨论】:

以上是关于spark.driver.extraClassPath 多个罐子的主要内容,如果未能解决你的问题,请参考以下文章