--- Azure Databricks 使用案例及实验手册 ---
开篇导语:如大家所知,Azure Databricks 在2020年10月1日这个重要的日子在中国大陆地区发布公开预览版。时隔两个月,2020年12月12日Azure Databricks正式版成功在由世纪互联运营的Microsoft Azure上线。中国大陆地区用户可以访问由世纪互联运营的Microsoft Azure体验Azure Databricks ,一个基于Apache Spark ™的简便快捷的协作式分析服务。
自从Azure Databricks公开预览版发布,ADB粉丝们就激动不已,迫不及待的想要上手体验Azure Databricks,更有热衷分享的技术牛人开始纷纷在各大技术论坛、博客、社区团体中分享Azure Databricks用户感受。今天我们就来跟大家分享一篇ADB粉丝的投稿~ 文章内容通俗易懂,并配有步骤截图介绍,可以帮助Azure Databricks新手用户更好的上手使用Azure Databricks。
投稿作者:Hanson,大数据开发工程师,来自上海衍梓智能科技公司
本篇文章演示内容如下:
1. 创建Databricks与Spark集群
2. 了解Databricks文件系统(DBFS)
3. 读取DBFS文件转换Spark SQL
4. 创建Azure SQL 服务,并使用Databricks数据输出至Azure SQL
5. 使用Azure Data Studio查询Azure SQL
在正式开始前,让我们先说说什么是AzureDatabricks?
Azure Databricks 是一个已针对 Microsoft Azure 云服务平台进行优化的数据分析平台。 Azure Databricks 提供了两种用于开发数据密集型应用程序的环境:Azure Databricks SQL Analytics 和 Azure Databricks 工作区。
Azure Databricks SQL Analytics为想要针对数据湖运行 SQL 查询、创建多种可视化类型以从不同角度探索查询结果,以及生成和共享仪表板的分析员提供了一个易于使用的平台。
Azure Databricks工作区提供了一个交互工作区,支持数据工程师、数据科学家和机器学习工程师之间的协作。 使用大数据管道时,原始或结构化的数据将通过 Azure 数据工厂以批的形式引入 Azure,或者通过 Apache Kafka、事件中心或 IoT 中心进行准实时的流式传输。 此数据将驻留在 Data Lake(长久存储)、Azure Blob 存储或 Azure Data Lake Storage 中。 在分析工作流中,使用 Azure Databricks 从多个数据源读取数据,并使用 Spark 将数据转换为突破性见解。
如果您想了解更多Azure Databricks SQL Analytics 和 Azure Databricks 工作区?您可以访问下方链接了解更详细的信息,我在这里不多做介绍了。https://docs.microsoft.com/zh-cn/azure/databricks/scenarios/what-is-azure-databricks
那么我们来看看如何上手使用Azure Databricks吧
前期说明
当然是要进入Azure控制台啦,链接在这里 https://portal.azure.com/ 您还需要一个账号(如果已有账号就很方便啦,直接登陆即可;如果没有账号,不妨试试申请一个免费的https://www.microsoft.com/china/azure/index.html?fromtype=cn#azurefreeform )
进入Azure控制台后,您可以点击Create a resource/创建资源,然后在搜索栏中查找Azure Databricks。
这里关于创建时需要的订阅、资源组、工作区名称、区域、定价层这些信息,您是要必填的。如果之前没有资源组,可以创建一个新的,直接操作,很方便的。创建好之后,就可以直接创建Azure Databricks服务啦。
关于一些您希望了解的信息,我也放在这里,供参考
Azure Databricks定价 https://azure.microsoft.com/zh-cn/pricing/details/databricks/
配置集群官方说明 https://docs.microsoft.com/zh-cn/azure/databricks/clusters/configure#cluster-configurations
万事俱备,开始创建
创建成功
接下来开始创建spark集群。
点击LaunchWorkspace
创建集群,可以参考官网配置集群链接
https://docs.microsoft.com/zh-cn/azure/databricks/clusters/configure#cluster-configurations
创建成功后返回主页面,创建笔记本
Databricks文件系统(DBFS)
官网链接 https://docs.microsoft.com/zh-cn/azure/databricks/data/databricks-file-system#user-interface
可以在此次上传文件到DBFS
上传完成后会给我们返回一个读数据的code
可以直接获取到数据
加入.option("header", "true")可以得到列名
当然也可以使用SQL
比如要查看有多少条“北京”
import org.apache.spark.sql.types._
val schema = new StructType()
.add("ts_code",StringType,true)
.add("symbol",IntegerType,true)
.add("name",StringType,true)
.add("area",StringType,true)
.add("industry",StringType,true)
.add("market",StringType,true)
.add("list_date",StringType,true)
val df =spark.read.format("csv")
.option("header", "true")
.schema(schema)
.load("dbfs:/FileStore/shared_uploads/email/stock_basic.csv")
df.createOrReplaceTempView("stock_basic")
spark.sql("select count(1) from stock_basic where area='北京'").show()
接下来创建AzureSQL来进行写操作
此处选择单独的服务器
如果没有server,需要创建一个
在将转换后的数据加载到Azure SQL数据库之前,让我们快速浏览一下Azure门户上的数据库。 为此,请转到门户并选择SQL数据库,然后单击查询编辑器(预览)
下面的屏幕截图显示了该数据库中当前没有表,也没有数据。
使用Scala将处理后的数据加载到AzureSQL数据库中(Loadingthe processed data into Azure SQL Database using Scala)
需要打开数据库访问的ip
打开之后再提交我们的代码
%scala
//读取数据
val df1 =spark.read.format("csv")
.option("header", "true")
.load("dbfs:/FileStore/shared_uploads/*****@***.**/stock_basic.csv")
//打印数据
df1.show()
//将创建一个Properties()来链接参数
import java.util.Properties
val myproperties = new Properties()
myproperties.put("user","admin1")
myproperties.put("password","1")
//以下代码有助于检查与SQL Server数据库的连接。
val driverClass ="com.microsoft.sqlserver.jdbc.SQLServerDriver"
myproperties.setProperty("Driver",driverClass)
//指定URL
val url = "jdbc:sqlserver://firstdb1.database.windows.net:1433;database=firstdb;user=admin1;password=1"
//写入数据
df1.write.jdbc(url,"stock_basic",myproperties)
再登录查看
查看数据
使用azuredata studio查看数据
查看到了数据
演示完要记得关闭azure 的服务
等待完成返回查看
接着停止Azure SQL
然后删除我们的资源组