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/

相关文章
相关标签/搜索