首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Scala查询SQL Server -如何?

从Scala查询SQL Server -如何?
EN

Stack Overflow用户
提问于 2016-12-29 00:42:50
回答 1查看 3.9K关注 0票数 0

Env:星火1.6与Scala,Cloudera

Server 2012,版本11.0

我正在尝试从Spark查询SQL Server。

代码语言:javascript
复制
object ConnTest extends App {
  val conf = new SparkConf()
  val sc = new SparkContext(conf.setAppName("Spark Ingestion").setMaster("local[*]"))
  val sqlcontext = new SQLContext(sc)

    val prop=new Properties()
    val url2="jdbc:sqlserver://xxx.xxx.xxx:1511;user=username;password=mypassword;database=SessionMonitor"
    prop.setProperty("user","username")
    prop.setProperty("password","mypassword")
    val test=sqlcontext.read.jdbc(url2,"Service",prop)

  val dd = sqlcontext.sql("select count(*) as TOT from Service")
  dd.foreach(println)
}

我的pom.xml有依赖性-

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>6.1.0.jre8</version>
        </dependency>

我没有下载任何jar文件;也没有将jar安装到maven存储库,也没有将jar添加到类路径。我的Hadoop集群与互联网没有连接。在创建maven包之后,我尝试使用

代码语言:javascript
复制
spark-submit --class ConnTest /Hadoopshare/tmp/sqldb-1.0-SNAPSHOT.jar

错误:

线程"main“java.sql.SQLException中的异常:没有合适的驱动程序

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-29 08:48:40

这应该添加到您的代码中:

代码语言:javascript
复制
prop.setProperty("driver" , "com.mysql.jdbc.Driver")

在我的例子中,我使用了这个,它完全可以工作:

代码语言:javascript
复制
val jdbcDF = sqlContext.read
      .format("jdbc")
      .option("driver" , "com.mysql.jdbc.Driver")
      .option("url", "jdbc:mysql://<<>Servername>:3306/<<DatabaseName>>")
      .option("dbtable", "(SELECT id, name FROM partner) tmp")
      .option("user", "username")
      .option("password", "******")
      .load()

希望这样能行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41371717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档