当前位置: 首页 > 知识库问答 >
问题:

找不到JDBC驱动程序

郑鸿朗
2023-03-14

因此,我一直在使用sbt with assembly将所有依赖项打包到一个jar中,用于spark工作。我做了几个工作,使用C3P0设置连接池信息,将其广播出去,然后在RDD上使用foreachpartition获取连接,并将数据插入数据库。在我的sbt构建脚本中,我包括

"mysql" % "mysql-connector-java" % "5.1.33"

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

因此,最近我开始使用SparkSQL,并意识到使用1.3.0中的新特性,简单地获取一个dataframe并将其保存到jdbc源代码中要容易得多

java.sql.sqlException:没有为jdbc:mysql://some.domain.com/myschema?user=user&password=password在java.sql.drivermanager.getConnection(drivermanager.java:596)在java.sql.drivermanager.getConnection(drivermanager.java:233)

当我在本地运行这个时,我通过设置

SPARK_CLASSPATH=/path/where/mysql-connector-is.jar

最终我想知道的是,为什么工作不能找到驱动程序,而它应该与它一起打包?我的其他工作从来没有这个问题。据我所知,C3P0和dataframe代码都使用了java.sql.DriverManager(根据我所知,它处理为您导入所有东西),所以它应该工作得很好??如果存在阻止汇编方法工作的东西,我需要做什么才能使其工作?

共有1个答案

郑曜灿
2023-03-14

此人也有类似问题:http://apache-spark-user-list.1001560.n3.nabble.com/how-to-use-dataframe-with-mysql-td22178.html

您是否已将连接器驱动程序更新到最新版本?另外,在调用load()时是否指定了驱动程序类?

Map<String, String> options = new HashMap<String, String>();
options.put("url", "jdbc:mysql://localhost:3306/video_rcmd?user=root&password=123456");
options.put("dbtable", "video");
options.put("driver", "com.mysql.cj.jdbc.Driver"); //here
DataFrame jdbcDF = sqlContext.load("jdbc", options); 

在spark/conf/spark-defaults.conf中,还可以将spark.driver.extraclasspath和spark.executor.extraclasspath设置为MySql driver.jar的路径

 类似资料:
  • 问题内容: 输出 >无法连接到数据库服务器java.lang.ClassNotFoundException 问题答案: 看来您应该将MySQL驱动程序jar放入 类路径中 。

  • 问题内容: 我是java和数据库连接的新手,我试图与oracle数据库建立非常简单的连接。当我运行此代码时: 我得到了输出。我正在使用Eclipse Helios,并且已将其添加到构建路径中(我仔细检查了第一件事),并且正在使用JDK 1.6。 问题答案: 检查.jar是否也在您的运行路径上。在eclipse中,转到运行->运行配置->选择配置->类路径选项卡。如果您的jar不在右侧选择“添加ja

  • 我在Windows中的IBM集成总线(IIB v10)中创建了一个名为TESTDDBB的JDBCProvider服务,它也是数据库的名称。我有一个JavaCompute节点,我试图在其中生成一个连接来调用oracle函数 问题是,当IIB试图获得命令时,它没有找到数据源java类 我有ojdbc6。jar驱动程序位于文件夹C:\jdbc\lib中,部署在集成服务器的共享库中,该库由包含JavaCo

  • 问题内容: 我正在尝试编写一个程序以在eclipse中连接到MySQL数据库,但出现错误 “ java.sql.SQLException:找不到合适的驱动程序” 。 Java代码是: } 控制台选项卡中的输出为: 我已经使用了MySQL Connector / J。将其解压缩到MySQL安装目录中,并将jar文件添加到CLASSPATH中。 另请参阅此图像。有一个 !在项目根目录上标记。image

  • 《2013年水晶报告》。使用Informix JDBC驱动器ifxjdbc.jar。报告之前正在工作 情况: > crconfig.xml已编辑,因此类路径中包含以下内容: C:\Program Files(x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java/lib/ifxjdbc.jar null 获取JDBC驱

  • java。sql。SQLException:找不到适合jdbc的驱动程序:h2:tcp://localhost/当我尝试使用java web应用程序连接到h2数据库时,抛出了~/ZadatakDB。 我可以使用H2控制台没有任何问题,ping是成功的。 我还将h2-1.3.176 jar文件添加到库和WEB-INF/lib中。 下面是我用来连接的Java方法: 我会错过什么? 我还将添加Stack