相关疑难解决方法(0)

Spark无法找到JDBC驱动程序

所以我一直在使用sbt with assembly将我的所有依赖项打包成一个jar用于我的spark作业.我有几个工作,我c3p0用来设置连接池信息,广播出来,然后foreachPartition在RDD上使用然后获取连接,并将数据插入数据库.在我的sbt构建脚本中,我包含了

"mysql" % "mysql-connector-java" % "5.1.33"
Run Code Online (Sandbox Code Playgroud)

这可确保JDBC连接器与作业打包在一起.一切都很好.

所以最近我开始玩SparkSQL,并意识到简单地采用数据帧并将其保存到具有新功能的jdbc源更容易 1.3.0

我收到以下异常:

java.sql.SQLException:在java.sql中找不到合适的jdbc驱动程序:mysql://some.domain.com/myschema?user = user&password = password at java.sql.DriverManager.getConnection(DriverManager.java:596).的DriverManager.getConnection(DriverManager.java:233)

当我在本地运行时,我通过设置绕过它

SPARK_CLASSPATH=/path/where/mysql-connector-is.jar
Run Code Online (Sandbox Code Playgroud)

最终我想知道的是,为什么这个工作不应该找到驱动程序什么时候应该打包它呢?我的其他工作从未遇到过这个问题.从我可以告诉他们c3p0和数据帧代码都使用java.sql.DriverManager(它处理从我可以告诉你的一切导入所有)所以它应该工作得很好?如果有什么东西阻止汇编方法工作,我需要做些什么来使其工作?

jdbc apache-spark apache-spark-sql

26
推荐指数
6
解决办法
5万
查看次数

使用pyspark连接到PostgreSQL

我正在尝试使用pyspark连接到数据库,我使用以下代码:

sqlctx = SQLContext(sc)
df = sqlctx.load(
    url = "jdbc:postgresql://[hostname]/[database]",
    dbtable = "(SELECT * FROM talent LIMIT 1000) as blah",
    password = "MichaelJordan",
    user =  "ScottyPippen",
    source = "jdbc",
    driver = "org.postgresql.Driver"
)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

在此输入图像描述

知道为什么会这样吗?

编辑:我试图在我的计算机本地运行代码.

postgresql apache-spark pyspark

12
推荐指数
5
解决办法
2万
查看次数