--- Azure Databricks 使用案例及實(shí)驗手冊 ---
開篇導(dǎo)語:如大家所知,Azure Databricks 在2020年10月1日這個重要的日子在中國大陸地區(qū)發(fā)布公開預(yù)覽版。時隔兩個月,2020年12月12日Azure Databricks正式版成功在由世紀(jì)互聯(lián)運(yùn)營的Microsoft Azure上線攀涵。中國大陸地區(qū)用戶可以訪問由世紀(jì)互聯(lián)運(yùn)營的Microsoft Azure體驗Azure Databricks ,一個基于Apache Spark ?的簡便快捷的協(xié)作式分析服務(wù)洽沟。
???????? 自從Azure Databricks公開預(yù)覽版發(fā)布汁果,ADB粉絲們就激動不已,迫不及待的想要上手體驗Azure Databricks玲躯,更有熱衷分享的技術(shù)牛人開始紛紛在各大技術(shù)論壇据德、博客、社區(qū)團(tuán)體中分享Azure Databricks用戶感受跷车。今天我們就來跟大家分享一篇ADB粉絲的投稿~ 文章內(nèi)容通俗易懂棘利,并配有步驟截圖介紹,可以幫助Azure Databricks新手用戶更好的上手使用Azure Databricks朽缴。
投稿作者:Hanson善玫,大數(shù)據(jù)開發(fā)工程師,來自上海衍梓智能科技公司
本篇文章演示內(nèi)容如下:
1. 創(chuàng)建Databricks與Spark集群
2. 了解Databricks文件系統(tǒng)(DBFS)
3. 讀取DBFS文件轉(zhuǎn)換Spark SQL
4. 創(chuàng)建Azure SQL?服務(wù)密强,并使用Databricks數(shù)據(jù)輸出至Azure SQL
5. 使用Azure Data Studio查詢Azure SQL
在正式開始前茅郎,讓我們先說說什么是AzureDatabricks?
? ? ? ? Azure Databricks 是一個已針對 Microsoft Azure 云服務(wù)平臺進(jìn)行優(yōu)化的數(shù)據(jù)分析平臺。 Azure Databricks 提供了兩種用于開發(fā)數(shù)據(jù)密集型應(yīng)用程序的環(huán)境:Azure Databricks SQL Analytics 和 Azure Databricks 工作區(qū)或渤。
???????? Azure Databricks SQL Analytics為想要針對數(shù)據(jù)湖運(yùn)行 SQL 查詢系冗、創(chuàng)建多種可視化類型以從不同角度探索查詢結(jié)果,以及生成和共享儀表板的分析員提供了一個易于使用的平臺薪鹦。
???????? Azure Databricks工作區(qū)提供了一個交互工作區(qū)掌敬,支持?jǐn)?shù)據(jù)工程師、數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)工程師之間的協(xié)作池磁。 使用大數(shù)據(jù)管道時奔害,原始或結(jié)構(gòu)化的數(shù)據(jù)將通過 Azure 數(shù)據(jù)工廠以批的形式引入 Azure,或者通過 Apache Kafka地熄、事件中心或 IoT 中心進(jìn)行準(zhǔn)實(shí)時的流式傳輸华临。 此數(shù)據(jù)將駐留在 Data Lake(長久存儲)、Azure Blob 存儲或 Azure Data Lake Storage 中端考。 在分析工作流中雅潭,使用 Azure Databricks 從多個數(shù)據(jù)源讀取數(shù)據(jù),并使用 Spark 將數(shù)據(jù)轉(zhuǎn)換為突破性見解跛梗。
如果您想了解更多Azure Databricks SQL Analytics 和 Azure Databricks 工作區(qū)寻馏?您可以訪問下方鏈接了解更詳細(xì)的信息,我在這里不多做介紹了核偿。https://docs.microsoft.com/zh-cn/azure/databricks/scenarios/what-is-azure-databricks
那么我們來看看如何上手使用Azure Databricks吧
前期說明
???????? 當(dāng)然是要進(jìn)入Azure控制臺啦诚欠,鏈接在這里?https://portal.azure.com/ 您還需要一個賬號(如果已有賬號就很方便啦,直接登陸即可;如果沒有賬號轰绵,不妨試試申請一個免費(fèi)的https://www.microsoft.com/china/azure/index.html?fromtype=cn#azurefreeform )
???????? 進(jìn)入Azure控制臺后粉寞,您可以點(diǎn)擊Create a resource/創(chuàng)建資源,然后在搜索欄中查找Azure Databricks左腔。
這里關(guān)于創(chuàng)建時需要的訂閱唧垦、資源組、工作區(qū)名稱液样、區(qū)域振亮、定價層這些信息,您是要必填的鞭莽。如果之前沒有資源組坊秸,可以創(chuàng)建一個新的,直接操作澎怒,很方便的褒搔。創(chuàng)建好之后,就可以直接創(chuàng)建Azure Databricks服務(wù)啦喷面。
關(guān)于一些您希望了解的信息星瘾,我也放在這里,供參考
Azure Databricks定價?https://azure.microsoft.com/zh-cn/pricing/details/databricks/
配置集群官方說明?https://docs.microsoft.com/zh-cn/azure/databricks/clusters/configure#cluster-configurations
萬事俱備惧辈,開始創(chuàng)建
創(chuàng)建成功
接下來開始創(chuàng)建spark集群琳状。
點(diǎn)擊LaunchWorkspace
創(chuàng)建集群,可以參考官網(wǎng)配置集群鏈接?
https://docs.microsoft.com/zh-cn/azure/databricks/clusters/configure#cluster-configurations
創(chuàng)建成功后返回主頁面咬像,創(chuàng)建筆記本
Databricks文件系統(tǒng)(DBFS)
官網(wǎng)鏈接?https://docs.microsoft.com/zh-cn/azure/databricks/data/databricks-file-system#user-interface
可以在此次上傳文件到DBFS
上傳完成后會給我們返回一個讀數(shù)據(jù)的code
可以直接獲取到數(shù)據(jù)
加入.option("header", "true")可以得到列名
當(dāng)然也可以使用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()
接下來創(chuàng)建AzureSQL來進(jìn)行寫操作
此處選擇單獨(dú)的服務(wù)器
如果沒有server算撮,需要創(chuàng)建一個
在將轉(zhuǎn)換后的數(shù)據(jù)加載到Azure SQL數(shù)據(jù)庫之前县昂,讓我們快速瀏覽一下Azure門戶上的數(shù)據(jù)庫。 為此陷舅,請轉(zhuǎn)到門戶并選擇SQL數(shù)據(jù)庫倒彰,然后單擊查詢編輯器(預(yù)覽)?
下面的屏幕截圖顯示了該數(shù)據(jù)庫中當(dāng)前沒有表,也沒有數(shù)據(jù)莱睁。
使用Scala將處理后的數(shù)據(jù)加載到AzureSQL數(shù)據(jù)庫中(Loadingthe processed data into Azure SQL Database using Scala)
需要打開數(shù)據(jù)庫訪問的ip
打開之后再提交我們的代碼
%scala
//讀取數(shù)據(jù)
val df1 =spark.read.format("csv")
?.option("header", "true")
?.load("dbfs:/FileStore/shared_uploads/*****@***.**/stock_basic.csv")
//打印數(shù)據(jù)
df1.show()
//將創(chuàng)建一個Properties()來鏈接參數(shù)
import java.util.Properties
val myproperties = new Properties()
myproperties.put("user","admin1")
myproperties.put("password","1")
//以下代碼有助于檢查與SQL Server數(shù)據(jù)庫的連接待讳。
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"
//寫入數(shù)據(jù)
df1.write.jdbc(url,"stock_basic",myproperties)
再登錄查看
查看數(shù)據(jù)
使用azuredata studio查看數(shù)據(jù)
查看到了數(shù)據(jù)
演示完要記得關(guān)閉azure 的服務(wù)
等待完成返回查看
接著停止Azure SQL
然后刪除我們的資源組