【数据分析】Databricks入门:分析COVID-19
作者 | Renan Ferreira?
編譯 | VK?
來源 | Towards Datas Science
典型的數據科學工作流由以下步驟組成:
?確定業務需求->數據獲取->數據準備->數據分析->共享數據見解
?每一個步驟都需要一套專業知識,這些專業知識可分為:
數據工程師:開發、構建、測試和維護數據管道
數據科學家:使用各種方法建立數據模型(機器學習模型)
數據分析師:獲取數據工程師準備的數據,以圖形、圖表和儀表板的形式從中提取見解(商業智能)
平臺管理員:負責管理和支持數據基礎設施(DevOps)
Databricks是一個統一的平臺,它為每個作業提供了必要的工具。在本文中,我們將通過創建一個數據管道并指出每個團隊成員的職責來分析巴西的COVID-19數據。
準備
要完成下一步,你需要訪問Databricks帳戶。最簡單的啟動方法是在https://community.cloud.databricks.com
集群創建(平臺管理員)
第一步是配置集群。Databricks是一個基于Spark的平臺,是最流行的大數據分析框架之一。Spark本質上是一個分布式系統。驅動程序是集群的協調器,工作節點負責繁重的工作。
平臺管理員負責根據用例、spark版本、worker節點數量和自動調整配置選擇適當的虛擬機系列。例如,ETL過程可能需要內存優化的設備,而繁重的機器學習訓練過程可能在gpu上運行。
轉到Clusters頁面,使用6.6ML運行時創建一個新的集群。如果你使用的是 Azure Databricks或AWS,則需要選擇驅動程序和worker節點的VM系列。對于本教程,你可以選擇最便宜的。
數據獲取
數據獲取可能是一個具有挑戰性的領域。通常,公司將數據存儲在多個數據庫中,而現在數據流的使用非常普遍。幸運的是,Databricks與Spark和Delta-Lake相結合,可以幫助我們為批處理或流式ETL(提取、轉換和加載)提供一個簡單的接口。
在本教程中,我們將從最簡單的ETL類型開始,從CSV文件加載數據。
首先,我們需要下載數據集。訪問以下網址:
https://github.com/relferreira/databricks-tutorial/tree/master/covid
下載文件caso.csv.gz
解壓縮該文件,訪問“數據”菜單,然后單擊“添加數據”按鈕。接下來,上傳先前下載的CSV文件。
上傳完成后,我們將使用數據集中顯示的信息創建一個新表。單擊Create Table UI,將表重命名為covid,將第一行設置為標題,最后單擊Create按鈕。
數據分析
創建了表之后,我們就可以開始分析數據集了。首先,我們需要創建一個新的python notebook。
?Worspace > Users > YOUR EMAIL
?單擊箭頭并創建一個新的Notebook
盡管Databricks是一個python Notebook,但它支持Notebook內的多種語言。在我們的例子中,我們將主要使用SparkSQL。如果你熟悉SQL,SparkSQL會讓你感覺像家一樣。
讓我們從查看新表開始:
%sql SELECT?*?FROM?covid你應該看到這樣的表:
作為數據分析員,你應該能夠提取有關數據的有價值的信息。首先,我們需要理解表中每一列的含義。一種方法是使用DESCRIBE函數:
%sql DESCRIBE?covid通過分析這兩個表,我們可以推斷出,當列place_type為state時,每一行表示該state的總數。讓我們試著畫出人口最多的三個州的死亡人數的演變:
%sql SELECT?date,?state,?deaths?FROM?covid?WHERE?state?in?(“MG”,?“RJ”,?“SP”)?and?place_type?=?“state”單擊Bar Chart按鈕,Plot選項,并對Line chart使用以下配置:
現在我們有了大流行期間死亡人數演變的一個很好的代表。例如,我們可以將此圖嵌入儀表板,以提醒這些州的人口。
數據科學
接下來,我們將嘗試預測先前繪制的時間序列的未來值。為此,我們將使用一個名為Prophet的Facebook庫
首先,我們需要安裝一些依賴項。
?Clusters > COVID > Libraries
?并使用PyPI安裝以下依賴項
pandas
pystan
fbprophet
我們將嘗試預測Minas Gerais(MG)未來的死亡人數。所以第一步是收集我們的數據。
也許你需要清除你Notebook的狀態
import?pandas?as?pd import?logginglogger?=?spark._jvm.org.apache.log4j logging.getLogger("py4j").setLevel(logging.ERROR)query?=?"""SELECT?string(date)?as?ds,?int(deaths)?as?y?FROM?covid?WHERE?state?=?"MG"?and?place_type?=?"state"?order?by?date """df?=?spark.sql(query) df?=?df.toPandas() display(df)接下來,我們將使用Prophet擬合模型并最終繪制預測
from?fbprophet?import?Prophetm?=?Prophet() m.fit(df)future?=?m.make_future_dataframe(periods=30)forecast?=?m.predict(future)fig1?=?m.plot(forecast)你應該看到下面的圖表和預測:
結論
我們的目標是演示數據科學工作流的所有步驟。這就是為什么我們沒有描述時間序列模型是如何工作的。如果你遵循本教程,你應該對Databricks平臺有一個很好的了解。
此公共存儲庫中提供了完整的Notebook:https://github.com/relferreira/databricks-tutorial
原文鏈接:https://towardsdatascience.com/getting-started-with-databricks-analyzing-covid-19-1194d833e90f
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【数据分析】Databricks入门:分析COVID-19的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python基础】pandas中app
- 下一篇: 【论文相关】盘点AAAI2020中的四篇