随着新的spark 1.3发布,我很高兴尝试使用JDBC函数(在Python中)。但是,我认为在遇到错误时,帮助不是可选的:
这是我做的:
我开始使用scala下的典型火花壳,如
SPARK_CLASSPATH=/jdbc_path/some-jdbc-driver.jar bin/spark-shell
结果在INFO中:使用--driver-class-path
(我跟着)
在PySpark REPEL中,导入了相关的包,我使用了
df2 = sqlCtx.load("jdbc", url="jdbc:ncluster://serveraddress:2406/database?user=myid&password=mypass", driver="com.asterdata.ncluster.Driver", dbtable="mytable")
但错误消息一直显示没有spark_home / jdbc这样的文件。
我可以知道:
答案 0 :(得分:0)
您可以在http://localhost:4040/environment/转到Spark环境用户界面,检查是否包含了这些广告。
我遇到了同样的问题(2),试试:
df2 = sqlCtx.load(source="jdbc", url="jdbc:ncluster://serveraddress:2406/database?user=myid&password=mypass", driver="com.asterdata.ncluster.Driver", dbtable="mytable")
让我知道它是否有效。在我的情况下,它工作,但我仍然无法与我的数据库建立连接,因为spark无法识别我的jar文件。这听起来很奇怪,但它正以某种方式发生。
如果您能够连接,请告诉我。
答案 1 :(得分:0)
不是设置SPARK_CLASSPATH(至少在Spark 1.5.2上说它已被弃用),请尝试关注this answer并修改conf/spark-defaults.conf
以下两行。
spark.driver.extraClassPath /path/to/my.jar
spark.executor.extraClassPath /path/to/my.jar
我不需要使用--driver-class-path
,因为在Spark启动时默认会加载jar。