クイック スタート:Azure Resource Manager テンプレートを使用して Azure Databricks で Spark ジョブを実行するQuickstart: Run a Spark job on Azure Databricks using the Azure Resource Manager template

このクイック スタートでは、Azure Resource Manager テンプレートを使用して、Apache Spark クラスターと共に Azure Databricks ワークスペースを作成します。In this quickstart, you use an Azure Resource Manager template to create an Azure Databricks workspace with an Apache Spark cluster. クラスターでジョブを実行して、カスタム グラフを使用し、人口統計データに基づいて無料または有料の使用状況からリアルタイムのレポートを作成します。You run a job on the cluster and use custom charts to produce real-time reports from free/paid usage based on demographics.

前提条件Prerequisites

Azure portal にサインインするSign in to the Azure portal

Azure Portal にサインインします。Sign in to the Azure portal.

注意

Azure 無料試用版サブスクリプションを使用してこのチュートリアルを実行することはできません。This tutorial cannot be carried out using Azure Free Trial Subscription. 無料アカウントをお持ちの場合は、お使いのプロファイルにアクセスし、サブスクリプションを [従量課金制] に変更します。If you have a free account, go to your profile and change your subscription to pay-as-you-go. 詳細については、Azure 無料アカウントに関するページをご覧ください。For more information, see Azure free account. 次に、リージョン内の vCPU について使用制限を削除しクォータの増加を依頼します。Then, remove the spending limit, and request a quota increase for vCPUs in your region. Azure Databricks ワークスペースを作成するときに、 [Trial (Premium - 14-Days Free DBUs)](試用版 (Premium - 14 日間の無料 DBU)) の価格レベルを選択し、ワークスペースから 14 日間無料の Premium Azure Databricks DBU にアクセスできるようにします。When you create your Azure Databricks workspace, you can select the Trial (Premium - 14-Days Free DBUs) pricing tier to give the workspace access to free Premium Azure Databricks DBUs for 14 days.

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

このセクションでは、Azure Resource Manager テンプレートを使って Azure Databricks ワークスペースを作成します。In this section, you create an Azure Databricks workspace using the Azure Resource Manager template.

  1. 次の画像をクリックして Azure ポータルでテンプレートを開きます。Click the following image to open the template in the Azure portal.

    Deploy to Azure

  2. Azure Databricks ワークスペースを作成するために必要な値を入力します。Provide the required values to create your Azure Databricks workspace

    Azure Resource Manager テンプレートを使用して Azure Databricks ワークスペースを作成するCreate Azure Databricks workspace using an Azure Resource Manager template

    次の値を指定します。Provide the following values:

    プロパティProperty 説明Description
    サブスクリプションSubscription ドロップダウンから Azure サブスクリプションを選択します。From the drop-down, select your Azure subscription.
    リソース グループResource group 新しいリソース グループを作成するか、既存のリソース グループを使用するかを指定します。Specify whether you want to create a new resource group or use an existing one. リソース グループは、Azure ソリューションの関連するリソースを保持するコンテナーです。A resource group is a container that holds related resources for an Azure solution. 詳しくは、Azure リソース グループの概要に関するページをご覧ください。For more information, see Azure Resource Group overview.
    場所Location [米国東部 2] を選択します。Select East US 2. 使用可能な他のリージョンについては、「リージョン別の利用可能な製品」をご覧ください。For other available regions, see Azure services available by region.
    ワークスペース名Workspace name Databricks ワークスペースの名前を指定しますProvide a name for your Databricks workspace
    Pricing TierPricing Tier StandardPremium のいずれかを選択します。Choose between Standard or Premium. これらのレベルの詳細については、Databricks の価格に関するページを参照してください。For more information on these tiers, see Databricks pricing page.
  3. [上記の使用条件に同意する][ダッシュボードにピン留めする] の順に選択し、 [購入] をクリックします。Select I agree to the terms and conditions stated above, select Pin to dashboard, and then click Purchase.

  4. ワークスペースの作成には数分かかります。The workspace creation takes a few minutes. ワークスペース作成時に、ポータルの右側に [Submitting deployment for Azure Databricks](Azure Databricks のデプロイを送信しています) タイルが表示されます。During workspace creation, the portal displays the Submitting deployment for Azure Databricks tile on the right side. このタイルを表示するために、ダッシュボードを右へスクロールしなければならない場合があります。You may need to scroll right on your dashboard to see the tile. スクリーンの上部に進行状況バーも表示されます。There is also a progress bar displayed near the top of the screen. いずれかの領域で進行状況を確認できます。You can watch either area for progress.

    Databricks のデプロイのタイルDatabricks deployment tile

Databricks に Spark クラスターを作成するCreate a Spark cluster in Databricks

  1. Azure Portal で、作成した Databricks ワークスペースに移動して、 [Launch Workspace](ワークスペースの起動) をクリックします。In the Azure portal, go to the Databricks workspace that you created, and then click Launch Workspace.

  2. Azure Databricks ポータルにリダイレクトされます。You are redirected to the Azure Databricks portal. ポータルで [クラスター] をクリックします。From the portal, click Cluster.

    Azure の DatabricksDatabricks on Azure

  3. [New cluster](新しいクラスター) ページで、クラスターを作成するための値を指定します。In the New cluster page, provide the values to create a cluster.

    Azure で Databricks Spark クラスターを作成するCreate Databricks Spark cluster on Azure

    以下を除くすべての値は、既定値のままにします。Accept all other default values other than the following:

    • クラスターの名前を入力します。Enter a name for the cluster.
    • この記事では、4.0 ランタイムを使用してクラスターを作成します。For this article, create a cluster with 4.0 runtime.
    • [Terminate after __ minutes of inactivity] (アクティビティが __ 分ない場合は終了する) チェック ボックスをオンにします。Make sure you select the Terminate after __ minutes of inactivity checkbox. クラスターが使われていない場合にクラスターを終了するまでの時間 (分単位) を指定します。Provide a duration (in minutes) to terminate the cluster, if the cluster is not being used.

    [クラスターの作成] を選択します。Select Create cluster. クラスターが実行されたら、ノートブックをクラスターにアタッチして、Spark ジョブを実行できます。Once the cluster is running, you can attach notebooks to the cluster and run Spark jobs.

クラスターの作成について詳しくは、Azure Databricks での Spark クラスターの作成に関するページをご覧ください。For more information on creating clusters, see Create a Spark cluster in Azure Databricks.

Spark SQL ジョブを実行するRun a Spark SQL job

このセクションで始める前に、次の前提条件を満たす必要があります。Before you begin with this section, you must complete the following prerequisites:

次のタスクで、Databricks にノートブックを作成し、Azure BLOB ストレージ アカウントからデータを読み取るようにノートブックを構成して、データに対して Spark SQL ジョブを実行します。Perform the following tasks to create a notebook in Databricks, configure the notebook to read data from an Azure Blob storage account, and then run a Spark SQL job on the data.

  1. 左側のウィンドウで、 [ワークスペース] をクリックします。In the left pane, click Workspace. [ワークスペース] ドロップダウンの [作成] をクリックして、 [ノートブック] をクリックします。From the Workspace drop-down, click Create, and then click Notebook.

    Databricks でノートブックを作成するCreate notebook in Databricks

  2. [Create Notebook](ノートブックの作成) ダイアログ ボックスで、名前を入力し、言語として [Scala] を選んで、前に作成した Spark クラスターを選びます。In the Create Notebook dialog box, enter a name, select Scala as the language, and select the Spark cluster that you created earlier.

    Databricks でノートブックを作成するCreate notebook in Databricks

    Create をクリックしてください。Click Create.

  3. この手順では、Azure Storage アカウントを Databricks Spark クラスターに関連付けます。In this step, associate the Azure Storage account with the Databricks Spark cluster. この関連付けを実行する方法は 2 つあります。There are two ways to accomplish this association. Azure Storage アカウントを Databricks Filesystem (DBFS) にマウントする方法と、作成したアプリケーションから Azure Storage アカウントに直接アクセスする方法です。You can mount the Azure Storage account to the Databricks Filesystem (DBFS), or directly access the Azure Storage account from the application you create.

    重要

    この記事では、DBFS のストレージにマウントする方法を使用します。This article uses the approach to mount the storage with DBFS. この方法では、マウントされたストレージがクラスター ファイル システム自体に確実に関連付けられます。This approach ensures that the mounted storage gets associated with the cluster filesystem itself. そのため、クラスターにアクセスするすべてのアプリケーションが、関連付けられているストレージも使用できます。Hence, any application accessing the cluster is able to use the associated storage as well. 直接アクセスする方法は、アクセスの構成を行うアプリケーションに限定されます。The direct-access approach is limited to the application from where you configure the access.

    マウントする方法を使用するには、Databricks ランタイム バージョン 4.0 で Spark クラスターを作成する必要があります。これは、この記事で選択したバージョンです。To use the mounting approach, you must create a Spark cluster with Databricks runtime version 4.0, which is what you chose in this article.

    次のスニペットで、{YOUR CONTAINER NAME}{YOUR STORAGE ACCOUNT NAME}、および {YOUR STORAGE ACCOUNT ACCESS KEY} を Azure Storage アカウントの適切な値に置き換えてください。In the following snippet, replace {YOUR CONTAINER NAME}, {YOUR STORAGE ACCOUNT NAME}, and {YOUR STORAGE ACCOUNT ACCESS KEY} with the appropriate values for your Azure Storage account. スニペットをノートブックの空のセルに貼り付け、Shift + Enter キーを押してコードのセルを実行します。Paste the snippet in an empty cell in the notebook and then press SHIFT + ENTER to run the code cell.

    • DBFS を使用してストレージ アカウントにマウントする (推奨)Mount the storage account with DBFS (recommended). このスニペットでは、Azure Storage アカウントのパスが /mnt/mypath にマウントされています。In this snippet, the Azure Storage account path is mounted to /mnt/mypath. そのため、今後 Azure Storage アカウントにアクセスする場合は、完全なパスを指定する必要はありません。So, in all future occurrences where you access the Azure Storage account you don't need to give the full path. 単に /mnt/mypath を使用することができます。You can just use /mnt/mypath.

       dbutils.fs.mount(
         source = "wasbs://{YOUR CONTAINER NAME}@{YOUR STORAGE ACCOUNT NAME}.blob.core.windows.net/",
         mountPoint = "/mnt/mypath",
         extraConfigs = Map("fs.azure.account.key.{YOUR STORAGE ACCOUNT NAME}.blob.core.windows.net" -> "{YOUR STORAGE ACCOUNT ACCESS KEY}"))
      
    • ストレージ アカウントに直接アクセスするDirectly access the storage account

       spark.conf.set("fs.azure.account.key.{YOUR STORAGE ACCOUNT NAME}.blob.core.windows.net", "{YOUR STORAGE ACCOUNT ACCESS KEY}")
      

      ストレージ アカウント キーを取得する方法については、「ストレージ アクセス キーの管理」を参照してください。For instructions on how to retrieve the storage account key, see Manage your storage access keys.

    注意

    Azure Databricks 上の Spark クラスターで Azure Data Lake Store を使うこともできます。You can also use Azure Data Lake Store with a Spark cluster on Azure Databricks. 方法については、Azure Databricks での Data Lake Store の使用に関するページをご覧ください。For instructions, see Use Data Lake Store with Azure Databricks.

  4. SQL ステートメントを実行し、サンプルの JSON データ ファイル small_radio_json.json のデータを使って、一時テーブルを作成します。Run a SQL statement to create a temporary table using data from the sample JSON data file, small_radio_json.json. 次のスニペットでは、プレースホルダーの値をコンテナー名およびストレージ アカウント名に置き換えます。In the following snippet, replace the placeholder values with your container name and storage account name. スニペットをノートブックのコード セルに貼り付けて、Shift + Enter キーを押します。Paste the snippet in a code cell in the notebook, and then press SHIFT + ENTER. スニペットの path は、Azure ストレージ アカウントにアップロードしたサンプルの JSON ファイルの場所を示します。In the snippet, path denotes the location of the sample JSON file that you uploaded to your Azure Storage account.

    %sql
    DROP TABLE IF EXISTS radio_sample_data;
    CREATE TABLE radio_sample_data
    USING json
    OPTIONS (
     path "/mnt/mypath/small_radio_json.json"
    )
    

    コマンドが正常に完了すると、JSON ファイルのすべてのデータが Databricks クラスター内のテーブルとして取り込まれます。Once the command successfully completes, you have all the data from the JSON file as a table in Databricks cluster.

    %sql 言語のマジック コマンドを使うと、ノートブックから SQL コードを実行できます (ノートブックが別の種類であっても)。The %sql language magic command enables you to run a SQL code from the notebook, even if the notebook is of another type. 詳しくは、「Mixing languages in a notebook」(ノートブックに言語を混在させる) をご覧ください。For more information, see Mixing languages in a notebook.

  5. 実行するクエリについて詳しく理解するため、サンプルの JSON データのスナップショットを見てみます。Let's look at a snapshot of the sample JSON data to better understand the query that you run. 次のスニペットをコード セルに貼り付けて、Shift + Enter キーを押します。Paste the following snippet in the code cell and press SHIFT + ENTER.

    %sql
    SELECT * from radio_sample_data
    
  6. 次のスクリーンショットのような表形式の出力が表示されます (一部の列のみ示してあります)。You see a tabular output like shown in the following screenshot (only some columns are shown):

    サンプルの JSON データSample JSON data

    サンプルには、ラジオ チャンネルの視聴者の性別 (列名: gender) および登録が無料か有料か (列名: level) に関するデータが含まれます。Among other details, the sample data captures the gender of the audience of a radio channel (column name, gender) and whether their subscription is free or paid (column name, level).

  7. このデータのビジュアル表現を作成し、各性別について、無料アカウント ユーザーの数と有料登録者の数がわかるようにします。You now create a visual representation of this data to show for each gender, how many users have free accounts and how many are paid subscribers. 表形式の出力の下部で、 [Bar chart](棒グラフ) アイコンをクリックした後、 [Plot Options](プロット オプション) をクリックします。From the bottom of the tabular output, click the Bar chart icon, and then click Plot Options.

    棒グラフを作成するCreate bar chart

  8. [Customize Plot](プロットのカスタマイズ) で、スクリーンショットに示すように値をドラッグ アンド ドロップします。In Customize Plot, drag-and-drop values as shown in the screenshot.

    棒グラフをカスタマイズするCustomize bar chart

    • [Keys](キー)gender に設定します。Set Keys to gender.
    • [Series groupings](系列グループ)level に設定します。Set Series groupings to level.
    • [Values](値)level に設定します。Set Values to level.
    • [Aggregation](集計)[COUNT](個数) に設定します。Set Aggregation to COUNT.

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

  9. 出力は、次のスクリーンショットのようなビジュアル表現になります。The output shows the visual representation as depicted in the following screenshot:

    棒グラフをカスタマイズするCustomize bar chart

リソースのクリーンアップClean up resources

記事を完了したら、クラスターを終了できます。After you have finished the article, you can terminate the cluster. そのためには、Azure Databricks ワークスペースの左側のウィンドウで、 [クラスター] を選択します。To do so, from the Azure Databricks workspace, from the left pane, select Clusters. 終了するクラスターで、 [アクション] 列の下にある省略記号をポイントし、 [終了] アイコンを選択します。For the cluster you want to terminate, move the cursor over the ellipsis under Actions column, and select the Terminate icon.

Databricks クラスターを停止するStop a Databricks cluster

クラスター作成時に [Terminate after __ minutes of inactivity] (アクティビティが __ 分ない場合は終了する) チェック ボックスをオンにしていた場合、手動で終了しなくともクラスターは自動で停止します。If you do not manually terminate the cluster it will automatically stop, provided you selected the Terminate after __ minutes of inactivity checkbox while creating the cluster. このような場合、クラスターは、一定の時間だけ非アクティブな状態が続くと自動的に停止します。In such a case, the cluster automatically stops, if it has been inactive for the specified time.

次の手順Next steps

この記事では、Azure Databricks に Spark クラスターを作成し、Azure Storage のデータを使って Spark ジョブを実行しました。In this article, you created a Spark cluster in Azure Databricks and ran a Spark job using data in Azure storage. Spark のデータ ソースを見て、他のデータ ソースから Azure Databricks にデータをインポートする方法を学習することもできます。You can also look at Spark data sources to learn how to import data from other data sources into Azure Databricks. Resource Manager テンプレートを見て、カスタム VNET アドレスで Azure Databricks ワークスペースを作成することもできます。You can also look at the Resource Manager template to Create an Azure Databricks workspace with custom VNET address. テンプレートで使用する JSON の構文とプロパティについては、Microsoft.Databricks/workspaces テンプレート リファレンスを参照してください。For the JSON syntax and properties to use in a template, see Microsoft.Databricks/workspaces template reference.

次の記事に進んで、Azure Databricks を使った ETL (データの抽出、変換、読み込み) 操作の実行方法について学びましょう。Advance to the next article to learn how to perform an ETL operation (extract, transform, and load data) using Azure Databricks.