练习 - 在 HDInsight Spark 群集上执行查询

已完成

本练习介绍如何从 csv 文件创建数据帧,以及如何针对 Azure HDInsight 中的 Apache Spark 群集运行交互式 Spark SQL 查询。 在 Spark 中,数据帧是已组织成命名列的分布式数据集合。 数据帧在概念上相当于关系型数据库中的表,或 R/Python 中的数据帧。

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

  • 从 csv 文件创建数据帧
  • 对数据帧运行查询

从 csv 文件创建数据帧

以下示例 csv 文件包含建筑物的温度信息,并存储在 Spark 群集的文件系统中。

A sample dataset

  1. 在 Jupyter 笔记本的空单元格中粘贴以下代码,然后按 Shift + Enter 运行这些代码。 这些代码会导入此方案所需的类型

    from pyspark.sql import *
    
    from pyspark.sql. types import *
    
  2. 在 Jupyter 中运行交互式查询时,Web 浏览器窗口或选项卡标题中会显示“(繁忙)”状态和笔记本标题。 右上角“PySpark”文本的旁边还会出现一个实心圆。 作业完成后,实心圆将变成空心圆。

    Running Python in Jupyter

  3. 运行以下代码,创建数据帧和临时表 (hvac)。

    # Create a dataframe and table from sample data
    
    csvFile = spark.read.csv ('/HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv', header=True, inferSchema=True)
    
    csvFile.write. saveAsTable("hvac")
    

对数据帧运行查询

创建表后,可以针对数据运行交互式查询。

  1. 在 Notebook 的空单元格中运行以下代码:

    %%sql
    
    SELECT buildingID, (targettemp - actualtemp) AS temp_diff, date FROM hvac WHERE date = \"6/1/13\"
    

    以下表格输出随即显示。

    Dataset results in Jupyter

    也可以在其他视觉效果中查看结果。 若要查看相同输出的面积图,请选择“面积” ,然后设置其他值,如下所示。

    Dataset visualization in Jupyter

  2. 从笔记本菜单栏中,导航到“文件”“保存和检查点”。

  3. 请关闭笔记本以释放群集资源:从笔记本菜单栏,导航到“文件”“关闭并停止”。