Spark SQL for JDBC从其他数据库获取数据

2024-10-01 13:46:12 发布

您现在位置:Python中文网/ 问答频道 /正文

随着新的spark1.3的发布,我很高兴尝试JDBC函数(在Python中)。但是,我认为帮助不是可选的,因为我遇到了一个错误:

以下是我所做的:

  1. 从一个典型的鳞片下的火花开始

    SPARK_CLASSPATH=/jdbc_path/some-jdbc-driver.jar bin/spark-shell
    

    结果在信息中显示:使用--driver-class-path(我接着说)

  2. 在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没有这样的文件。在

我可以知道:

  1. 当设置额外的外部类时,我如何知道它已包含在内?在
  2. 只是一个连接到其他数据库的简单JDBC,有没有完整的JDBC示例可以遵循?在

Tags: path函数driver错误somesparkjar火花
2条回答

不要设置SPARK\u类路径(至少在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。在

  1. 您可以转到位于http://localhost:4040/environment/的Spark environment UI来检查是否包含jar。

  2. 我也遇到过同样的问题(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文件。听起来很糟糕,但不知怎么回事。在

如果你能接通,请告诉我。在

相关问题 更多 >