教程:使用 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 Notebook 中,粘贴以下代码,然后按 SHIFT + ENTER。 该代码验证表是否存在。

    %%sql
    SHOW TABLES
    

    输出如下所示:

    Show tables in Spark

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

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

    %%sql
    SELECT * FROM hvac LIMIT 10
    

    输出如下所示:

    Show rows from hvac table in Spark

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

可视化数据

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

在 Power BI Desktop 中创建报表

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

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

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

    Get data into Power BI Desktop from HDInsight Apache Spark

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

    Get data into Power BI from Apache Spark BI

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

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

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

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

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

    Spark cluster user name and password

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

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

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

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

      add value columns

      关系图如下所示:

      area graph sum

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

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

      average of values

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

      area graph

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

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

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

  1. 打开 Power BI Desktop。

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

    Publish from Power BI Desktop

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

    Select workspace to publish dataset and report to

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

    Publish success, click to enter credentials

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

    Enter credentials in Power BI service

  6. 选择“编辑凭据”。

    Edit credentials in Power BI service

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

    Sign in to Spark cluster

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

    Report listed under reports in left pane

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

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

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

    Report in the Power BI service

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

    Pin to new dashboard

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

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

清理资源

完成本教程后,可以删除群集。 有了 HDInsight,便可以将数据存储在 Azure 存储中,因此可以在群集不用时安全地删除群集。 此外,还需要为 HDInsight 群集付费,即使不用也是如此。 由于群集费用数倍于存储空间费用,因此在群集不用时删除群集可以节省费用。

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

后续步骤

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