快速入门:使用 Azure 门户在 Azure Databricks 工作区上运行 Spark 作业
在本快速入门中,将使用 Azure 门户创建一个具有 Apache Spark 群集的 Azure Databricks 工作区。 你在群集上运行作业,并使用自定义图表根据西雅图安全数据生成实时报告。
先决条件
Azure 订阅 - 创建试用版订阅。 不能使用 Azure 试用版订阅完成本教程。 如果你有试用版订阅,请转到个人资料,将订阅更改为“标准预付费套餐”。 有关详细信息,请参阅 Azure 试用版订阅。 然后,对你所在区域中的 vCPU 请求增加配额。 创建 Azure Databricks 工作区时,可以选择“试用版(高级 - 14天免费 DBU)”定价层,让工作区访问免费的高级 Azure Databricks DBU 14 天。
登录 Azure 门户。
必须是 Azure 参与者或所有者,或者必须在订阅中注册 Microsoft.ManagedIdentity 资源提供程序。 有关说明,请查看注册资源提供程序。
创建 Azure Databricks 工作区
在本部分,你将使用 Azure 门户或 Azure CLI 创建 Azure Databricks 工作区。
在 Azure 门户中,选择“创建资源”,在搜索筛选器中输入“Azure Databricks”,然后选择 Enter 键。
在市场页中选择“Azure Databricks”项,然后在 Azure Databricks 页中选择“创建”。
在“Azure Databricks 服务” 下,提供所需的值以创建 Databricks 工作区。
提供以下值:
属性 说明 工作区名称 提供 Databricks 工作区的名称 订阅 从下拉列表中选择自己的 Azure 订阅。 资源组 指定是要创建新的资源组还是使用现有的资源组。 资源组是用于保存 Azure 解决方案相关资源的容器。 有关详细信息,请参阅 Azure 资源组概述。 位置 选择“中国北部 2”。 有关其他可用区域,请参阅各区域推出的 Azure 服务。 定价层 在“标准”、“高级”和“试用”之间进行选择。 有关这些层的详细信息,请参阅 Databricks 价格页。 选择“查看 + 创建”,然后选择“创建” 。 创建工作区需要几分钟时间。 创建工作区时,可以在“通知”中查看部署状态。 完成此过程后,你的用户帐户将自动添加为工作区的管理员用户。
当工作区部署失败时,仍然会在失败状态下创建工作区。 删除失败的工作区,并创建一个解决部署错误的新工作区。 删除失败的工作区时,托管资源组和任何成功部署的资源也将被删除。
在 Databricks 中创建 Spark 群集
注意
若要使用试用版订阅创建 Azure Databricks 群集,请在创建群集前转到个人资料,将订阅更改为“标准预付费套餐”。 有关详细信息,请参阅 Azure 试用版订阅。
在 Azure 门户中,转到所创建的 Databricks 工作区,然后单击“启动工作区”。
随后将会重定向到 Azure Databricks 门户。 在该门户中,单击“新建群集”。
在“新建群集”页中,提供用于创建群集的值。
除以下值外,接受其他所有默认值:
- 输入群集的名称。
- 在本文中,请创建运行时为 10.4LTS 的群集。
- 请务必选中“在不活动 __ 分钟后终止”复选框。 提供一个持续时间(以分钟为单位),如果群集在这段时间内一直未被使用,则会将其终止。
选择“创建群集”。 群集运行后,可将笔记本附加到该群集,并运行 Spark 作业。
有关创建群集的详细信息,请参阅在 Azure Databricks 中创建 Spark 群集。
运行 Spark SQL 作业
执行以下任务在 Databricks 中创建笔记本、将该笔记本配置为从 Azure 开放数据集读取数据,然后针对这些数据运行 Spark SQL 作业。
在边栏中单击“创建”>“笔记本”。
在“创建笔记本”对话框中输入一个名称,选择“Python”作为语言,并选择前面创建的 Spark 群集。
选择“创建”。
在此步骤中,请使用 Azure 开放数据集中的西雅图安全数据创建 Spark DataFrame,并使用 SQL 来查询数据。
以下命令设置 Azure 存储访问信息。 将此 PySpark 代码粘贴到第一个单元格中,然后使用 Shift+Enter 来运行代码。
blob_account_name = "azureopendatastorage" blob_container_name = "citydatacontainer" blob_relative_path = "Safety/Release/city=Seattle" blob_sas_token = r""
以下命令允许 Spark 以远程方式从 Blob 存储读取数据。 将此 PySpark 代码粘贴到下一个单元格中,然后使用 Shift+Enter 来运行代码。
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path) spark.conf.set('fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token) print('Remote blob path: ' + wasbs_path)
以下命令创建 DataFrame。 将此 PySpark 代码粘贴到下一个单元格中,然后使用 Shift+Enter 来运行代码。
df = spark.read.parquet(wasbs_path) print('Register the DataFrame as a SQL temporary view: source') df.createOrReplaceTempView('source')
运行一个 SQL 语句,从名为 source 的临时视图返回头 10 行数据。 将此 PySpark 代码粘贴到下一个单元格中,然后使用 Shift+Enter 来运行代码。
print('Displaying top 10 rows: ') display(spark.sql('SELECT * FROM source LIMIT 10'))
随后将会看到以下屏幕截图中所示的表格输出(此处只显示了一部分列):
现在创建此数据的视觉表示形式,用于说明使用 Citizens Connect App 和 City Worker App 而非其他源报告了多少安全事件。 在表格输出的底部,选择“条形图”图标,然后单击“绘图选项”。
在“自定义绘图”中,按屏幕截图中所示拖放值。
将“键”设置为“source”。
将“值”设置为“<\id>”。
将“聚合”设置为“计数”。
将“显示类型”设置为“饼图”。
单击“应用”。
清理资源
完成本文后,可以终止群集。 为此,请在 Azure Databricks 工作区的左窗格中选择“群集” 。 针对想要终止的群集,将光标移到“操作” 列下面的省略号上,选择“终止” 图标。
如果不手动终止群集,但在创建群集时选中了“在不活动 __ 分钟后终止”复选框,则该群集会自动停止。 在这种情况下,如果群集保持非活动状态超过指定的时间,则会自动停止。
后续步骤
在本文中,我们已在 Azure Databricks 中创建一个 Spark 群集,并使用 Azure 开放数据集中的数据运行了一个 Spark 作业。 我们还可以查看 Spark 数据源,了解如何将其他数据源中的数据导入 Azure Databricks。 请继续学习下一篇文章,了解如何使用 Azure Databricks 执行 ETL(提取、转换和加载数据)操作。