【发布时间】:2025-12-20 00:05:11
【问题描述】:
我是 Scala 的新手,正在尝试使用 Spark 从 mysql 数据库中读取数据。无论我做什么,我都面临着一个找不到类的异常。我尝试在没有 Spark 的情况下使用 Squeryl、Scalike 等进行连接。总是同样的问题。 这是我试过的一个例子:
logger.info("Write part")
val dataframe_mysql = spark.sqlContext
.read.format("jdbc")
.option("url", s"jdbc:mysql://${datamart_server}:3306/vol")
.option("driver", "com.mysql.jdbc.Driver")
.option("dbtable", "company")
.option("user", datamart_user).option("password", datamart_pwd)
.load()
dataframe_mysql.show()
我尝试将驱动程序类名放在 src/main/resources/application.conf 中:
db.default.driver="com.mysql.jdbc.Driver"
但这没有帮助。我有:
java.sql.SQLException: 没有合适的驱动程序
我还分享了 sbt 文件来展示我如何添加依赖项:
name := "commercial-api-datamart-feed"
version := "0.1"
scalaVersion := "2.11.6"
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.0"
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.1.3" % Runtime
libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.9.0"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.3.0"
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.24" % Runtime
Spark 不是强制性的,但我认为它对性能更好。
【问题讨论】:
标签: mysql scala apache-spark jdbc