Databricks入門:分析COVID-19

做者|Renan Ferreira
編譯|VK
來源|Towards Datas Sciencepython

典型的數據科學工做流由如下步驟組成:git

肯定業務需求->數據獲取->數據準備->數據分析->共享數據看法github

每個步驟都須要一套專業知識,這些專業知識可分爲:sql

數據工程師:開發、構建、測試和維護數據管道數據庫

數據科學家:使用各類方法創建數據模型(機器學習模型)apache

數據分析師:獲取數據工程師準備的數據,以圖形、圖表和儀表板的形式從中提取看法(商業智能)框架

平臺管理員:負責管理和支持數據基礎設施(DevOps)機器學習

Databricks是一個統一的平臺,它爲每一個做業提供了必要的工具。在本文中,咱們將經過建立一個數據管道並指出每一個團隊成員的職責來分析巴西的COVID-19數據。jvm

準備

要完成下一步,你須要訪問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 logging

logger = 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 Prophet

m = 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博客站:
http://panchuang.net/

sklearn機器學習中文官方文檔:
http://sklearn123.com/

歡迎關注磐創博客資源彙總站:
http://docs.panchuang.net/

相關文章
相關標籤/搜索