• Exception in thread “main“ java.sql.SQLException: No suitable driver


    详细报错信息如下:

    Exception in thread "main" java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getDriver(DriverManager.java:315)
        at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.$anonfun$driverClass$2(JDBCOptions.scala:107)
        at scala.Option.getOrElse(Option.scala:189)
        at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.(JDBCOptions.scala:107)
        at org.apache.spark.sql.execution.datasources.jdbc.JdbcOptionsInWrite.(JDBCOptions.scala:218)
        at org.apache.spark.sql.execution.datasources.jdbc.JdbcOptionsInWrite.(JDBCOptions.scala:222)
        at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:46)
        at org.apache.spark.sql.execution.datasources.SaveIntoDataSourceCommand.run(SaveIntoDataSourceCommand.scala:45)
        at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:75)
        at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:73)
        at org.apache.spark.sql.execution.command.ExecutedCommandExec.executeCollect(commands.scala:84)
        at org.apache.spark.sql.execution.QueryExecutionanonfun$eagerlyExecuteCommands$1.$anonfun$applyOrElse$1(QueryExecution.scala:110)atorg.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$5(SQLExecution.scala:103)atorg.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:163)atorg.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$1(SQLExecution.scala:90)atorg.apache.spark.sql.SparkSession.withActive(SparkSession.scala:775)atorg.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:64)atorg.apache.spark.sql.execution.QueryExecutionanonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:110)
        at org.apache.spark.sql.execution.QueryExecutionanonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:106)atorg.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformDownWithPruning$1(TreeNode.scala:481)atorg.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:82)atorg.apache.spark.sql.catalyst.trees.TreeNode.transformDownWithPruning(TreeNode.scala:481)atorg.apache.spark.sql.catalyst.plans.logical.LogicalPlan.org$apache$spark$sql$catalyst$plans$logical$AnalysisHelpersuper$transformDownWithPruning(LogicalPlan.scala:30)
        at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning(AnalysisHelper.scala:267)
        at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning$(AnalysisHelper.scala:263)
        at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:30)
        at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:30)
        at org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:457)
        at org.apache.spark.sql.execution.QueryExecution.eagerlyExecuteCommands(QueryExecution.scala:106)
        at org.apache.spark.sql.execution.QueryExecution.commandExecuted$lzycompute(QueryExecution.scala:93)
        at org.apache.spark.sql.execution.QueryExecution.commandExecuted(QueryExecution.scala:91)
        at org.apache.spark.sql.execution.QueryExecution.assertCommandExecuted(QueryExecution.scala:128)
        at org.apache.spark.sql.DataFrameWriter.runCommand(DataFrameWriter.scala:848)
        at org.apache.spark.sql.DataFrameWriter.saveToV1Source(DataFrameWriter.scala:382)
        at org.apache.spark.sql.DataFrameWriter.saveInternal(DataFrameWriter.scala:355)
        at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:247)
        at org.apache.spark.sql.DataFrameWriter.jdbc(DataFrameWriter.scala:745)
        at gs_1.gs_1_util.writeMySql(gs_1_util.scala:38)
        at gs_1.task03$.test01(task03.scala:50)
        at gs_1.task03$.main(task03.scala:61)
        at gs_1.task03.main(task03.scala)
     

  • 相关阅读:
    Android应用内设置多语言
    QCheckBox、margin、border、pandding、QHoxLayout、QSplitter
    LeetCode【37.解数独】
    RAM/ROM/Flash区别
    一幅长文细学Vue(五)——组件高级(上)
    Python还值得学吗?
    10. selenium API (二)
    input无内容提交显示抖动提示效果
    任务调度框架 Quartz 一文读懂
    Qt Quick Layouts Overview
  • 原文地址:https://blog.csdn.net/W2484980893/article/details/133351874