演習 - HDInsight Spark クラスターでクエリを実行する

完了

この演習では、csv ファイルからデータフレームを作成する方法と、Azure HDInsight で Apache Spark クラスターに対して対話型の Spark SQL クエリを実行する方法を説明します。 Spark のデータフレームは、名前付きの列に編成された、データの分散型コレクションです。 データフレームは概念的には、リレーショナル データベースのテーブルまたは R/Python のデータ フレームと同等です。

このチュートリアルでは、次の作業を行う方法について説明します。

  • csv ファイルからデータフレームを作成する
  • データフレームでクエリを実行する

csv ファイルからデータフレームを作成する

次のサンプル csv ファイルは、ある建物の温度情報が含まれており、Spark クラスターのファイル システムに格納されています。

A sample dataset

  1. 次のコードを Jupyter Notebook の空のセルに貼り付け、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

    他の視覚化で結果を表示することもできます。 同じ出力に対して面積グラフを表示するには、[Area](面積) を選択し、他の値を次のように設定します。

    Dataset visualization in Jupyter

  2. ノートブックのメニュー バーから [File](ファイル) > [Save and Checkpoint](保存とチェックポイント) に移動します。

  3. ノートブックのメニュー バーから [File](ファイル) > [Close and Halt](閉じて停止) に移動し、ノートブックをシャットダウンしてクラスター リソースを解放します。