Spark:线程“主”java.lang.ClassNotFoundException中的异常:com.mysql.jdbc.Driver

2023-12-13

我在 Spark 中编写了简单的程序,将数据帧写入 mySql 中的表。

程序如下:

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SQLContext
import org.apache.spark.sql.hive.HiveContext

import org.apache.spark.SparkContext._
import org.apache.spark.rdd._
//import org.apache.spark.rdd.RDD

import org.apache.spark.sql.types._
import org.apache.spark.sql.Row;

import java.util.Properties

import java.sql.{ Connection, DriverManager, SQLException }

object MySQLTrial {
  def main(args: Array[String]) {
    val sparkConf = new SparkConf().setAppName("AnalyseBusStreaming")
    val sc = new SparkContext(sparkConf)
    val df = sc.parallelize(Array((1, 234), (2, 1233)))
    val sqlContext = new org.apache.spark.sql.SQLContext(sc)
    import sqlContext.implicits._
    val prop = new Properties()
    prop.put("user", "admin")
    prop.put("password", "admin")

    val driver = "com.mysql.jdbc.Driver"
    Class.forName(driver)
    val dfWriter = df.toDF().write.mode("append")
    dfWriter.jdbc("jdbc:mysql://127.0.0.1:3306/IOT_DB", "table1", prop)
  }
}

我的项目的POM文件如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>ggi.bigdata</groupId>
    <artifactId>internet_of_things</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.10</artifactId>
            <version>1.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_2.10</artifactId>
            <version>1.6.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
    </dependencies>
</project>

我正在使用 Spark Submit 运行这个程序(在本地和纱线模式下尝试过)。我没有明确包含任何 jar 文件来运行此代码。我不断收到错误:

线程“main”中的异常 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

对此应该怎么办?


这是因为您的驱动程序不存在于您提交到集群的 uber-jar 中,无论它是独立集群、yarn 或 mesos 等。

解决方案1:由于您使用的是 Maven,因此您可以使用程序集插件来构建具有所有所需依赖项的 uber-jar。有关更多信息maven 组件插件在这里.

解决方案2:当您使用以下命令提交应用程序时,在运行时提供这些依赖库--jars选项。我建议您阅读有关矿石信息高级依赖管理 and 提交申请在官方文档中。

例如它可以看起来像这样:

./bin/spark-submit \
  --class <main-class>
  --master <master-url> \
  --jars /path/to/mysql-connector-java*.jar

我希望这有帮助 !

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

Spark:线程“主”java.lang.ClassNotFoundException中的异常:com.mysql.jdbc.Driver 的相关文章

  • Hibernate 对集合的查询过滤器

    我想执行以下查询 from Item i where i categoryItems catalogId catId 然而 这会产生以下异常 非法尝试取消引用集合 所以我用谷歌搜索 找到了这个 Hibernate 论坛帖子https for
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • Scala Tuple2Zipped 与 IterableLike zip

    两种实现有什么区别 这个比那个好吗 有一篇博客文章说 Tuple2Zipped 性能更好 但没有提供原因 并且查看源代码我没有看到差异 val l1 List 1 2 3 val l2 List 5 6 7 val v1 l1 zip l2
  • Spark Scala 将列从一个数据帧复制到另一个数据帧

    我有一个原始数据框的修改版本 我在其上进行了聚类 现在我想将预测列恢复为原始 DF 索引没问题 因此匹配 我该怎么做 使用这段代码我得到一个错误 println Predicted dfWithOutput show println Ori
  • fetchsize和batchsize对Spark的影响

    我想通过以下方式控制 RDB 的读写速度Spark直接 但标题已经透露的相关参数似乎不起作用 我可以得出这样的结论吗fetchsize and batchsize我的测试方法不起作用 或者它们确实会影响阅读和写作方面 因为测量结果基于规模是
  • 对 Scala Not Null 特征的库支持

    Notice 从 Scala 2 11 开始 NotNull已弃用 据我了解 如果您希望引用类型不可为空 则必须混合魔法NotNull特征 编译器会自动阻止你输入null 可以值在里面 看到这个邮件列表线程 http www nabble
  • 类型级编程有哪些示例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不明白 类型级编程 是什么意思 也无法使用Google找到合适的解释 有人可以提供一个演示类型级编程的示例吗 范式的解释和 或定义将
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c
  • 如何使用 vitess 仅对特定表进行分片

    我创建了一个包含三个表的未分片键空间 现在我想对前两个表的键空间进行分片 但不想对第三个表进行分片 如何才能做到这一点 Vitess 文档不包含任何与此相关的信息或示例 请帮忙 Thanks vitess 中的垂直分片与水平分片类似 您应该
  • 比特纳米。重置mysql根密码

    我如何重置 MySQL 中的 root 密码和帐户 因为我按照如何为其他服务器授予权限的说明操作 并且意外地将 root 用户 Mysql 绑定到其他 IP 地址 现在看来我无法在 localhost 上以管理员身份登录 Thanks 您有
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 玩:将表单字段绑定到双精度型?

    也许我只是忽略了一些明显的事情 但我无法弄清楚如何将表单字段绑定到 Play 控制器中的双精度型 例如 假设这是我的模型 case class SavingsGoal timeframeInMonths Option Int amount
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • 分析 sbt 构建

    我的 sbt 构建需要很长时间 它又大又复杂 很难知道从哪里开始清理 看起来 sbt 保留了很多关于构建结构的元数据 包括相互依赖关系 命名任务 范围界定等 有了所有这些元数据 似乎很容易跳入并测量每个不同任务 及其范围 花费的时间 在代码
  • Hadoop 减速器数量配置选项优先级

    以下3个设置reduce数量的选项的优先级是什么 换句话说 如果三者都设置了 会考虑哪一个呢 Option1 setNumReduceTasks 2 within the application code Option2 D mapredu

随机推荐

  • 如何在 Android 4.3 api 18 上更改 ActionBar 标题文本的颜色

    我正在使用 appcompat v7 库来支持 api 级别 8 及更高版本的操作栏 我正在尝试更改操作栏标题文本的颜色 GingerBread 中标题文本的颜色正在变化 但是当我使用 JellyBean 在手机上运行该应用程序时 颜色没有
  • iOS 15 上的 AirPods Pro 无法播放音频文件

    我正在使用此代码来播放音频 我的代码在所有耳机型号的 iOS 14 上运行良好 但当客户将设备更新到 iOS 15 并使用 AirPods Pro 时 不会播放任何音频文件 在其他 AirPods 型号上以及通过 iPhone 扬声器播放音
  • 如何克服 HTMLUnit ScriptException?

    我遇到了一行代码的问题 可能会触发一些 js 函数并导致异常 我该如何解决这个问题 box setText link toString client waitForBackgroundJavaScriptStartingBefore 100
  • MacOS 上的 Python“dyld:库未加载”- 错误

    我正在尝试运行一个 python 脚本 该脚本执行一些 API 调用和 Kafka 逻辑 但出现以下错误 dyld Library not loaded executable path Python Tried brew update br
  • 拖动时将标记/图钉保持在地图中间

    我希望当用户在地图上拖动时 标记 图钉可以滚动并位于地图的中心 我有一个简单的 jsfiddle http jsfiddle net upsidown 5xd1Lbpc 6 当用户停止拖动时 图钉将落到地图的中心 但我希望图钉随着拖动而移动
  • PayPal REST API“列出付款”不返回任何条目

    我正在尝试使用 PayPal REST API 来获取付款列表 通常这些付款是通过 eBay 进行的 当我尝试沙箱时 我可以获得一个令牌 然后按预期获得付款列表 但当我切换到实时列表时 列表总是空的 例如 使用卷曲 curl https a
  • 如何在 Android 上获取 google 用户名?

    我看过有关使用的参考AccountManager like 通过 Android 访问 Google 帐户 ID 用户名 不过好像是为了抢authtoken 我只需要访问用户名 不需要密码或任何身份验证令牌 我使用的是android 2 1
  • 为什么 PHP 严格类型允许函数参数的类型错误?

    我正在使用 PHP 7 4 16 我启用了strict types在我的 PHP 文件中 认为它会阻止传递string函数的参数期望int通过扔一个TypeError 然而 该函数实际上接受string并将其强制为int 但是 如果我在函数
  • Bootstrap Offcanvas 导航 - 关闭时不重置背景

    我在 offcanvas div 中有一个很长的链接列表 这些在表单中是因为我想使用它们来导航很长的背景页面 实际上 它是一个目录 画布愉快地弹出 导航链接有效 将背景页面跳转到正确的位置 欢呼 但是 当您选择并链接并导航背景页面到某个位置
  • 导出时 React.Component 是默认扩展吗?

    我正在浏览一些 React 项目 有时会看到 export default gt 但其他时候我看到 export default class Entry extends React Component 两者之间有什么区别吗 导出是否自动扩展
  • 转换 QString 以在 SQL 查询中使用

    我想根据用户输入生成 SQL 查询 以便将一些数据插入数据库 用户可以输入任何内容 Qt 有没有办法将此类用户输入转换为字符串类型值字段 用户可以输入任何内容 这并没有给我们太多参考 但我可以给你一个例子来说明如何设置基本的插入查询 I a
  • 当对存在的目录使用 ListDirectoryDe​​tails 时,FtpWebRequest 返回“550 文件不可用(例如,文件未找到,无法访问)”

    我有一个恼人的问题 阻止我在 FTP 中获取所需的文件 该文件可能有不同的名称 因此我需要首先访问该文件夹并列出其中的文件 然后直接向该文件发出请求 我的问题是 我可以在 Filezilla 中访问此文件 并且也可以完美地发现该文件夹 但是
  • jQuery Mobile 列表上的多个拆分按钮

    jQuery 移动列表中是否可以有多个拆分按钮 我尝试这样做 ul li a href 1 a a href a a href a li ul 但这不起作用 将链接包装在 div div
  • Android 中有波斯(Shamsi 或 Jalali)日历的库或算法吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想转换公历 西方 日期至Persian Shamsi 日期 反之亦然 适用于所有版本的 Android 有没有完整可靠的库或算法 我使用这个算法很
  • 圆形区域内的查询点

    Here is a picture to illustrate the problem 图中有一些特征点显示为蓝色十字 我知道坐标 x y 对于所有功能 现在我想查询哪些要素在圆圈区域 绿色圆圈 内 实际上 大约有 500 个特征和 300
  • VStack 有最大限制吗?

    我从一个干净的项目开始 在 VStack 中添加了 5 个按钮和 5 个垫片 一切都很好 当我在底部添加第 6 个间隔符时 代码突然无法编译 并出现错误 对成员 buildBlock 的引用不明确 是什么导致了这个错误 这是与 SwiftU
  • PairRDD 的总和值

    我有一个 RDD 类型 dataset org apache spark rdd RDD String Double MapPartitionRDD 26 这相当于 Pedro 0 0833 Hello 0 001828 我想总结所有的价值
  • 触发系统音量条

    是否可以通过按我的按钮Activity让音量条出现 音量条是当您按下硬件音量按钮之一时出现的视图 是否有 API 函数可以执行此操作 或者我是否必须手动重新创建该视图 如果调用 setStreamVolume 请传递标志 FLAG SHOW
  • 无法在 UserControl 上设置 x:Name="Root"

    我尝试将 x Name 属性设置为 UserControl 的定义 以便稍后将其用于内部绑定
  • Spark:线程“主”java.lang.ClassNotFoundException中的异常:com.mysql.jdbc.Driver

    我在 Spark 中编写了简单的程序 将数据帧写入 mySql 中的表 程序如下 import org apache spark SparkConf import org apache spark SparkContext import o