クイックスタート: Azure portal を使用して Azure Databricks ワークスペースで Spark ジョブを実行する

このクイック スタートでは、Azure portal を使って Azure Databricks ワークスペースと Apache Spark クラスターを作成します。 クラスターでジョブを実行し、カスタム グラフを使用して、シアトルの安全に関するデータからリアルタイムのレポートを作成します。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成しますAzure 無料試用版サブスクリプションを使用してこのチュートリアルを実行することはできません。 無料アカウントをお持ちの場合は、お使いのプロファイルにアクセスし、サブスクリプションを [従量課金制] に変更します。 詳細については、Azure 無料アカウントに関するページをご覧ください。 次に、リージョン内の vCPU について使用制限を削除しクォータの増加を依頼します。 Azure Databricks ワークスペースを作成するときに、 [Trial (Premium - 14-Days Free DBUs)](試用版 (Premium - 14 日間の無料 DBU)) の価格レベルを選択し、ワークスペースから 14 日間無料の Premium Azure Databricks DBU にアクセスできるようにします。

  • Azure portal にサインインします。

Note

FedRAMP High などの米国政府のコンプライアンス認定資格を保持する Azure 商用クラウド内に Azure Databricks ワークスペースを作成する場合は、Microsoft または Databricks の担当者に連絡して、このエクスペリエンスへのアクセスを取得してください。

Azure Databricks ワークスペースを作成する

このセクションでは、Azure portal または Azure CLI を使用して Azure Databricks ワークスペースを作成します。

  1. Azure portal で、[リソースの作成][分析][Azure Databricks] の順に選択します。

    Databricks on Azure portal

  2. [Azure Databricks サービス] で値を指定して、Databricks ワークスペースを作成します。

    Create an Azure Databricks workspace

    次の値を指定します。

    プロパティ 説明
    ワークスペース名 Databricks ワークスペースの名前を指定します
    サブスクリプション ドロップダウンから Azure サブスクリプションを選択します。
    リソース グループ 新しいリソース グループを作成するか、既存のリソース グループを使用するかを指定します。 リソース グループは、Azure ソリューションの関連するリソースを保持するコンテナーです。 詳しくは、Azure リソース グループの概要に関するページをご覧ください。
    場所 [米国西部 2] を選択します。 使用可能な他のリージョンについては、「リージョン別の利用可能な製品」をご覧ください。
    価格レベル StandardPremiumTrial のいずれかを選択します。 これらのレベルの詳細については、Databricks の価格に関するページを参照してください。
  3. [確認および作成][作成] の順に選択します。 ワークスペースの作成には数分かかります。 ワークスペースの作成中に、 [通知] でデプロイの状態を表示できます。 この処理が完了すると、ユーザー アカウントが管理者ユーザーとして自動的にワークスペースに追加されます。

    Databricks deployment tile

    ワークスペースのデプロイが失敗した場合でも、ワークスペースはエラー状態で作成されます。 失敗したワークスペースを削除し、デプロイ エラーのない新しいワークスペースを作成します。 失敗したワークスペースを削除すると、管理対象リソース グループと、正常にデプロイされたリソースもすべて削除されます。

Databricks に Spark クラスターを作成する

Note

無料アカウントを使用して Azure Databricks クラスターを作成するには、クラスターを作成する前に、プロファイルにアクセスし、サブスクリプションを従量課金制に変更します。 詳細については、Azure 無料アカウントに関するページをご覧ください。

  1. Azure Portal で、作成した Databricks ワークスペースに移動して、 [Launch Workspace](ワークスペースの起動) をクリックします。

  2. Azure Databricks ポータルにリダイレクトされます。 ポータルから、 [新しいクラスター] をクリックします。

    Databricks on Azure

  3. [New cluster](新しいクラスター) ページで、クラスターを作成するための値を指定します。

    Create Databricks Spark cluster on Azure

    以下を除くすべての値は、既定値のままにします。

    • クラスターの名前を入力します。

    • この記事では、10.4LTS ランタイムを使用してクラスターを作成します。

    • [Terminate after __ minutes of inactivity](アクティビティが __ 分ない場合は終了する) チェック ボックスをオンにします。 クラスターが使われていない場合にクラスターを終了するまでの時間 (分単位) を指定します。

      [クラスターの作成] を選択します。 クラスターが実行されたら、ノートブックをクラスターにアタッチして、Spark ジョブを実行できます。

クラスターの作成について詳しくは、Azure Databricks での Spark クラスターの作成に関するページをご覧ください。

Spark SQL ジョブを実行する

次のタスクを実行して Databricks でノートブックを作成し、Azure オープン データセットからデータを読み取るようにノートブックを構成してから、そのデータに対して Spark SQL ジョブを実行します。

  1. 左側のウィンドウで、 [Azure Databricks] を選択します。 [Common Tasks] (一般的なタスク) から、 [New Notebook] (新しいノートブック) を選択します。

    Create a new notebook

  2. [Create Notebook] (ノートブックの作成) ダイアログ ボックスで、名前を入力し、言語として [Python] を選択してから、前に作成した Spark クラスターを選択します。

    Enter notebook details

    [作成] を選択します

  3. この手順では、Azure Open Datasets からシアトルの安全に関するデータを含む Spark DataFrame を作成し、SQL を使用してそのデータにクエリを実行します。

    次のコマンドは、Azure Storage のアクセス情報を設定します。 この PySpark コードを最初のセルに貼り付け、Shift + Enter キーを使用してコードを実行します。

    blob_account_name = "azureopendatastorage"
    blob_container_name = "citydatacontainer"
    blob_relative_path = "Safety/Release/city=Seattle"
    blob_sas_token = r"?st=2019-02-26T02%3A34%3A32Z&se=2119-02-27T02%3A34%3A00Z&sp=rl&sv=2018-03-28&sr=c&sig=XlJVWA7fMXCSxCKqJm8psMOh0W4h7cSYO28coRqF2fs%3D"
    

    次のコマンドは、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)
    

    次のコマンドは、データフレームを作成します。 この PySpark コードを次のセルに貼り付け、Shift + Enter キーを使用してコードを実行します。

    df = spark.read.parquet(wasbs_path)
    print('Register the DataFrame as a SQL temporary view: source')
    df.createOrReplaceTempView('source')
    
  4. source という名前の一時ビューから上位 10 行のデータを返す SQL ステートメントを実行します。 この PySpark コードを次のセルに貼り付け、Shift + Enter キーを使用してコードを実行します。

    print('Displaying top 10 rows: ')
    display(spark.sql('SELECT * FROM source LIMIT 10'))
    
  5. 次のスクリーンショットのような表形式の出力が表示されます (一部の列のみ示してあります)。

    Sample data

  6. 次に、他のソースではなく Citizens Connect App や City Worker App を使用して安全に関するいくつのイベントが報告されているかを表示するために、このデータの視覚的な表現を作成します。 表形式の出力の一番下から [横棒グラフ] アイコンを選択し、 [Plot Options] (プロット オプション) をクリックします。

    Create bar chart

  7. [Customize Plot](プロットのカスタマイズ) で、スクリーンショットに示すように値をドラッグ アンド ドロップします。

    Customize pie chart

    • [キー][source] に設定します。

    • [値]<\id> に設定します。

    • [Aggregation](集計)[COUNT](個数) に設定します。

    • [Display type] (表示の種類)[円グラフ] に設定します。

      [Apply] をクリックします。

リソースをクリーンアップする

記事を完了したら、クラスターを終了できます。 そのためには、Azure Databricks ワークスペースの左側のウィンドウで、 [クラスター] を選択します。 終了するクラスターで、 [アクション] 列の下にある省略記号をポイントし、 [終了] アイコンを選択します。

Stop a Databricks cluster

クラスター作成時に [Terminate after __ minutes of inactivity](アクティビティが __ 分ない場合は終了する) チェック ボックスをオンにしていた場合、手動で終了しなくともクラスターは自動で停止します。 このような場合、クラスターは、一定の時間だけ非アクティブな状態が続くと自動的に停止します。

次のステップ

この記事では、Azure Databricks で Spark クラスターを作成し、Azure オープン データセットからのデータを使用して Spark ジョブを実行しました。 Spark のデータ ソースを見て、他のデータ ソースから Azure Databricks にデータをインポートする方法を学習することもできます。 次の記事に進んで、Azure Databricks を使った ETL (データの抽出、変換、読み込み) 操作の実行方法について学びましょう。