SparkSQL MS SQL Server,编译后获取消息“没有合适的驱动程序”

时间:2018-12-02 03:54:28

标签: sql-server scala apache-spark apache-spark-sql

build.sbt

<div className="buttonGrid">
   <Buttons 
     key={this.state.targetNumber}         
     onClick={this.handleClick} 
   />
</div>

SparkMSSQL.scala

name := "BigData"

version := "0.1"

scalaVersion := "2.12.7"

libraryDependencies += "com.github.tototoshi" %% "scala-csv" % "1.3.5"
// https://mvnrepository.com/artifact/org.apache.spark/spark-core
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.0"

// https://mvnrepository.com/artifact/org.apache.spark/spark-sql
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.0"
// https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc
libraryDependencies += "com.microsoft.sqlserver" % "mssql-jdbc" % "6.1.0.jre8" % Test

编译后错误

import org.apache.spark.sql.SparkSession

object SparkMSSQL {

  def main(args: Array[String]): Unit = {

    val spark = SparkSession.
      builder.master("local[*]")
      .appName("Simple Application")
      .getOrCreate()
    val url = "jdbc:sqlserver://localhost;databaseName=scalatest;integratedSecurity=true";
    // Define database table to load into DataFrame
    val jdbcDbTable = "dbo.user_profiles"
    val df = spark
      .read
      .format("jdbc")
      .option("url", url)
      .option("dbtable", "dbo.user_profiles")
      .load()

    df.printSchema()
  }
}

请咨询,我的代码有什么问题?

1 个答案:

答案 0 :(得分:2)

首先,您将jdbc驱动程序放在test范围内,因此可能不会在运行时加载jar。而且,spark需要驱动程序类信息来创建JDBC连接,因此请尝试在DF初始化程序中添加以下选项:

.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")