首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在azure数据库中查询sql server表

问在azure数据库中查询sql server表
EN

Stack Overflow用户
提问于 2020-08-04 22:17:16
回答 1查看 1.9K关注 0票数 2

我使用下面的代码来使用azure查询我的azure server数据库中的sql server表hr.employee。我对激发sql并尝试一步一步地学习细微之处是陌生的。

Azure数据库:

代码语言:javascript
复制
%scala
val jdbcHostname = dbutils.widgets.get("hostName")
val jdbcPort = 1433
val jdbcDatabase = dbutils.widgets.get("database")
val jdbcUrl = s"jdbc:sqlserver://${jdbcHostname}:${jdbcPort};database=${jdbcDatabase}"

import java.util.Properties
val connectionProperties = new Properties()
 
connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")

%scala
val driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
connectionProperties.setProperty("Driver", driverClass)

%scala
val employee = spark.read.jdbc(jdbcUrl, "hr.Employee", connectionProperties)

%scala
spark.sql("select * from employee") 

%sql
select * from employee

employee.select("col1","col2").show()

我得到了以下错误。不知道我做错了什么。也尝试过几种变体,但到目前为止还没有成功。

错误:

代码语言:javascript
复制
';' expected but integer literal found.

command-922779590419509:26: error: not found: value %
%sql

command-922779590419509:27: error: not found: value select
select * from employee

command-922779590419509:27: error: not found: value from
select * from employee

command-922779590419509:16: error: not found: value %
%scala
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-05 09:16:46

您可以签出以下步骤来使用其JDBC驱动程序查询Server:

注意:在整个教程中,我使用的是"Scala“源代码。

步骤1:检查是否有JDBC驱动程序可用

代码语言:javascript
复制
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")

步骤2:创建JDBC

代码语言:javascript
复制
val jdbcHostname = "<hostname>"
val jdbcPort = 1433
val jdbcDatabase = "<database>"

// Create the JDBC URL without passing in the user and password parameters.
val jdbcUrl = s"jdbc:sqlserver://${jdbcHostname}:${jdbcPort};database=${jdbcDatabase}"

// Create a Properties() object to hold the parameters.
import java.util.Properties
val connectionProperties = new Properties()

connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")

步骤3:检查到SQLServer数据库的连接

代码语言:javascript
复制
val driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
connectionProperties.setProperty("Driver", driverClass)

Step4:从JDBC读取数据

代码语言:javascript
复制
val employees_table = spark.read.jdbc(jdbcUrl, "employees", connectionProperties)

Step5:从数据库表中读取模式

代码语言:javascript
复制
employees_table.printSchema

Step6:您可以对这个JDBC表运行查询:

代码语言:javascript
复制
display(employees_table.select("age", "salary").groupBy("age").avg("salary"))

这里是供您参考的屏幕截图:

​

​

​

​

​

​

=======> 最新答案 <===============

使用SQL查询:

Step1:从Python或Scala中的DataFrame创建全局表的:

代码语言:javascript
复制
dataFrame.write.saveAsTable("<table-name>")

​

​

**步骤2:**现在运行SQL查询

代码语言:javascript
复制
spark.sql("select * from employees_table")

%sql 

select * from employees_table

​

​

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

https://stackoverflow.com/questions/63255827

复制
相关文章

相似问题

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