Spark 无法找到 JDBC 驱动程序

2023-12-02

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

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

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

所以最近我开始使用 SparkSQL,并意识到使用 DataFrame 中的新功能将其保存到 jdbc 源要容易得多1.3.0

我收到以下异常:

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

当我在本地运行这个时,我通过设置解决了这个问题

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

最终我想知道的是,为什么这项工作应该与驱动程序打包在一起时却无法找到驱动程序?我的其他工作从来没有遇到过这个问题。据我所知c3p0和数据框代码都使用java.sql.DriverManager(据我所知,它可以为您导入所有内容)所以它应该可以正常工作?如果有什么东西阻止了组装方法的工作,我需要做什么才能使其工作?


此人也有类似的问题: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驱动程序.jar的路径

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark 无法找到 JDBC 驱动程序 的相关文章

随机推荐

  • 将光标设置在 EditText 上的右侧,并提示重力居中

    这可能吗 有任何 EditText 属性可以这样做吗 Thanks 您可以使用 android ellipsize end android gravity center 当你声明 EditText 时在你的 xml 中 第一行是将光标移动到
  • 自跟踪实体和延迟加载

    有没有办法在上下文打开时使用延迟加载和自我跟踪实体 会有什么问题吗 我需要考虑什么 非常感谢您的提前答复 STE 根本不支持延迟加载 因为延迟加载需要在实体上创建动态代理 但 STE 在设计上并未代理 检查摘要中的附加注释 or MSDN问
  • 在python中向时间序列图添加水平限制线

    我想为温度时间序列图添加水平上限和下限线 假设上限线为 30 下限线为 10 df3 plot x Date y Temp PM Temp AM figsize 20 8 我认为这个解决方案可以帮助你 import matplotlib p
  • Joomla URL:一篇文章本身没有漂亮的 URL?

    我是 Joomla 1 5 的新手 我试图澄清一些有关 Joomla 处理 URL 的方式 我已经激活了他们所说的 搜索引擎友好的网址 但似乎页面 或 文章 只有在我从菜单链接到它时才会获得这样的 URL 漂亮的 无参数 URL 真的只在我
  • JQuery 滑块替代品? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在使用 JQuerySlider用作双面滑块的控件 这是一个很棒的 UI 控件 但我正在寻找一个不那么 胖 的替代方案 现在 为了让我使用滑块控件 我必须包括 jQuery核心
  • 'virtualenv' 'pip install sqlalchemy' 但看不到 'pip list'

    我学会了安装python的虚拟环境 看来我对一些基本的点子常识不太熟悉 That is 在虚拟环境中 virtualenv test 然后我有一个名为 test 的虚拟环境 然后我通过激活它 source test bin activate
  • 这个哈希对于安全性有优势吗?

    有什么好处吗 sha1 sha1 sha1 password salt 基本上有多个 sha1 与只有一个 sha1 sha1 password salt 我再说一遍 不要DO NOT尝试通过对哈希值进行 特殊 操作来使密码哈希值更安全 F
  • 使用 auto 访问类的私有结构

    我发现下一个奇怪的代码编译并运行 在 VS 2019 上 include
  • 什么是条件同步?

    有人可以向我解释条件同步吗 一个例子 最好是 C 的 也将不胜感激 听起来你的教授正在谈论线程 线程使计算机程序能够一次执行多件事情 在线程已经运行的情况下启动新线程的行为被计算机程序员称为 启动线程 线程可以共享相同的内存空间 条件同步
  • 0xC0000005:读取位置 0x00000008 时发生访问冲突

    我已经为此苦苦挣扎了一段时间 想知道是否有人可以提供帮助 我正在尝试使用 C 和 SDL1 3 制作粒子样本 到目前为止我已经取得了巨大的成功 程序编译并打开屏幕 但没有任何反应 当我运行调试器时 我收到此错误 SDL 1 3 Space
  • 为每个用户选择每天最高的 3 个分数

    我有一个像这样的 MYSQL 表 id userid score datestamp 1 1 5 2012 12 06 03 55 16 2 2 0 5 2012 12 06 04 25 21 3 1 7 2012 12 06 04 35
  • Windows 堆栈和堆地址范围

    到目前为止 我在使用 Linux 时 堆栈地址非常高 而堆地址非常低 通过使用 C 程序打印堆和堆栈地址可以看出 我对 Win32 进程内存布局有一个问题 MWSDN说堆栈地址高于堆地址 但从我在实践中看到的情况来看 堆栈地址低于堆地址 所
  • 关闭 MySQL 连接 (PHP)

    我编写了一个类来创建与 MySQL 的自动连接并创建查询 它看起来是这样的 include constants php class MySQLDB var connection function construct this gt conn
  • openpty 之后的 ncurses newterm

    我正在尝试弄清楚如何执行以下操作 创建一个新的伪终端 打开在 从属 伪终端内运行的 ncurses 屏幕 fork A 将 I O 从程序运行的终端 bash 转发到新的 从属 终端或 B 退出 让 ncurses 程序在新 pty 中运行
  • 从 R 中未知密度的分位数生成随机样本[重复]

    这个问题在这里已经有答案了 如何从未知密度的分位数生成随机样本数据f x for x之间0 and 4 in R f function x x 1 2 exp x 3 3 2 x 2 2 x 如果我理解正确的话 你想生成具有密度函数由下式给
  • 后缀(前缀)增量、L 值和 R 值(在 C 和 C++ 中)

    我刚刚了解到以下事实 前缀增量 var name 的结果是 C 中的 R 值 至少 我是 确保它不是 C 中的 L 值 但它是 C 中的 L 值 后缀增量 var name 的结果是 C 中的 R 值 至少 我是 确保它不是 C 中的 L
  • 提升语义操作导致解析问题

    我一直在使用 Boost mini 编译器示例 这是源代码的根 http www boost org doc libs 1 59 0 libs spirit example qi compiler tutorial mini c 我感兴趣的
  • 向结构化numpy数组添加字段(3)

    这个问题已经被问过并回答过多次 here and here 例如 显然该函数已在 numpy 1 6 1 中移动 没有更多了numpy lib recfunctions 虽然我可以按照之前的帖子中指定的方式实现我自己的 但我会really而
  • 如何在连接字段中使用逗号分隔列表连接两个表

    我有两张桌子 categories and movies In movies表我有一列categories 该列包含电影所属的类别 类别是用逗号分隔的 ID 这是一个例子 Table categories id name 1 Action
  • Spark 无法找到 JDBC 驱动程序

    因此 我一直在使用 sbt 和 assembly 将所有依赖项打包到一个 jar 中以用于我的 Spark 作业 我有几份工作正在使用c3p0设置连接池信息 将其广播出去 然后使用foreachPartition然后在 RDD 上获取连接