教程:使用 Power BI 在 HDInsight 中分析 Apache Spark 数据

在本教程中,了解如何使用 Microsoft Power BI 在 Azure HDInsight 中直观显示 Apache Spark 群集中的数据。

本教程介绍如何执行下列操作:

  • 使用 Power BI 可视化 Spark 数据

如果没有 Azure 订阅,可以在开始前创建一个免费帐户

先决条件

验证数据

上一教程中创建的 Jupyter Notebook 包含用于创建 hvac 表的代码。 此表基于在所有 HDInsight Spark 群集上均可用的 CSV 文件(位于 \HdiSamples\HdiSamples\SensorSampleData\hvac\hvac.csv)。 使用以下过程验证数据。

  1. 从 Jupyter 笔记本中,粘贴以下代码,然后按 Shift+Enter。 该代码验证表是否存在。

    %%sql
    SHOW TABLES
    

    输出如下所示:

    在 Spark 中显示表

    如果在开始本教程之前关闭笔记本,这会清除 hvactemptable,使其不包含在输出中。 只有元存储中存储的 Hive 表(由“isTemporary”列下的“False”表示)可从 BI 工具中进行访问 。 在本教程中,将连接到创建的 hvac 表。

  2. 将以下代码粘贴到空白单元格中,然后按 Shift+Enter。 该代码验证表中的数据。

    %%sql
    SELECT * FROM hvac LIMIT 10
    

    输出如下所示:

    在 Spark 中显示 hvac 表中的行

  3. 请在 Notebook 的“文件”菜单中选择“关闭并停止” 。 关闭 Notebook 以释放资源。

可视化数据

在本部分,将使用 Power BI 从 Spark 群集数据创建可视化效果、报表和仪表板。

在 Power BI Desktop 中创建报表

使用 Spark 的前几步是连接到 Power BI Desktop 中的集群,从集群中加载数据,并根据此数据创建基本的可视化效果。

  1. 打开 Power BI Desktop。 关闭启动初始屏幕(如果已打开)。

  2. 从“主页”选项卡,导航到“获取数据” > “更多...”。

    从 HDInsight Apache Spark 将数据获取到 Power BI Desktop

  3. 在搜索框中输入 Spark,选择 Azure HDInsight Spark,然后选择“连接” 。

    从 Apache Spark BI 将数据获取到 Power BI

  4. 在“服务器”文本框中输入群集 URL(形式为 mysparkcluster.azurehdinsight.cn)。

  5. 在“数据连接模式”下,择“DirectQuery”。 然后选择“确定”。

    Spark 可使用任一数据连接模式。 若使用 DirectQuery,则报告中会显示更改,但不刷新整个数据集。 如果导入数据,则必须刷新数据集以查看更改。 若要深入了解如何以及何时使用 DirectQuery,请参阅在 Power BI 中使用 DirectQuery

  6. 输入 HDInsight 登录帐户信息,然后选择“连接”。 默认帐户名为 admin。

  7. 选择 hvac 表,稍后即可看到数据预览,然后选择“加载”。

    Spark 群集用户名和密码

    Power BI Desktop 拥有连接到 Spark 群集和从 hvac 表中加载数据所需的信息。 该表及表中各列显示在“字段”窗格中。

  8. 可视化每栋建筑物的目标温度与实际温度之间的差异:

    1. 在“可视化”窗格中,选择“分区图” 。

    2. 将“BuildingID”字段拖到“轴”,并将“ActualTemp”和“TargetTemp”字段拖至“值” 。

      添加值列

      关系图如下所示:

      面积图总和

      默认情况下,可视化效果效果会显示 ActualTempTargetTemp 的总和。 选择“可视化效果”窗格中 ActualTemp 和 TragetTemp 旁边的向下键,可看到已选中“总和” 。

    3. 选择“可视化效果”窗格中 ActualTemp 和 TragetTemp 旁边的向下键,选择“平均值”以获得每栋建筑物的实际温度与目标温度的平均值 。

      值的平均值

      数据可视化效果应与屏幕截图中类似。 在视觉效果上移动光标可获取相关数据的工具提示。

      面积图

  9. 导航到“文件” > “保存”,为文件输入名称 BuildingTemperature,然后选择“保存”。

将报表发布到 Power BI 服务(可选)

Power BI 服务允许在整个组织中共享报表和仪表板。 在本部分,首先发布数据集和报表。 然后,将报表固定到仪表板。 仪表板通常用于重点处理报表中的数据子集;此报表中只有一个可视化效果,但仍可用于完成此步骤。

  1. 打开 Power BI Desktop。

  2. 在“主页”选项卡上,选择“发布” 。

    从 Power BI Desktop 发布

  3. 选择要将数据集和报表发布到的工作区,然后选择“选择”。 在下图中,默认选择“我的工作区”。

    选择要将数据集和报告发布到的工作区

  4. 发布成功后,选择“在 Power BI 中打开 BuildingTemperature.pbix”。

    发布成功,单击以输入凭据

  5. 在 Power BI 服务中,选择“输入凭据”。

    在 Power BI 服务中输入凭据

  6. 选择“编辑凭据”。

    在 Power BI 服务中编辑凭据

  7. 输入 HDInsight 登录帐户信息,然后选择“登录”。 默认帐户名为 admin。

    登录到 Spark 群集

  8. 在左侧窗格中,转到“工作区” > “我的工作区” > “报表”,然后选择“BuildingTemperature” 。

    在左窗格中的报告下列出的报告

    还可在左窗格中的“数据集”下找到 BuildingTemperature 。

    现可在 Power BI 服务中使用 Power BI Desktop 中创建的视觉对象。

  9. 将光标悬停在可视化效果上,然后选择右上角的“固定”图标。

    Power BI 服务中的报告

  10. 选择“新建仪表板”,输入名称 Building temperature,再选择“固定”。

    固定到新仪表板

  11. 在报表中,选择“转到仪表板”。

视觉对象已固定到仪表板 - 可在报表中添加其他视觉对象,并将其固定在同一仪表板上。 有关报表和仪表板的详细信息,请参阅 Power BI 中的报表Power BI 中的仪表板

清理资源

完成教程之后,可能想要删除该群集。 有了 HDInsight,便可以将数据存储在 Azure 存储中,因此可以在群集不用时安全地删除群集。 此外,还需要支付 HDInsight 群集费用,即使未使用。 由于群集费用高于存储空间费用数倍,因此在不使用群集时将其删除可以节省费用。

若要删除群集,请参阅使用浏览器、PowerShell 或 Azure CLI 删除 HDInsight 群集

后续步骤

在本教程中,你已了解了如何使用 Microsoft Power BI 在 Azure HDInsight 中直观显示 Apache Spark 群集中的数据。 请继续学习下一篇文章,试着创建一个机器学习应用程序。