Azure Databricks を探索する

Azure Databricks は、一般的なオープンソース Databricks プラットフォームの Microsoft Azure ベースのバージョンです。

Azure Synapse Analytics と同様に、Azure Databricks の “ワークスペース” は、Azure 上の Databricks クラスター、データ、およびリソースを管理するための中心点を提供します。**

この演習の所要時間は約 30 分です。

Azure Databricks ワークスペースをプロビジョニングする

ヒント: 既に Azure Databricks ワークスペースがある場合は、この手順をスキップして、既存のワークスペースを使用できます。

この演習には、新しい Azure Databricks ワークスペースをプロビジョニングするスクリプトが含まれています。 このスクリプトは、この演習で必要なコンピューティング コアに対する十分なクォータが Azure サブスクリプションにあるリージョンに、Premium レベルの Azure Databricks ワークスペース リソースを作成しようとします。また、使用するユーザー アカウントのサブスクリプションに、Azure Databricks ワークスペース リソースを作成するための十分なアクセス許可があることを前提としています。 十分なクォータやアクセス許可がないためにスクリプトが失敗した場合は、Azure portal で、Azure Databricks ワークスペースを対話形式で作成してみてください。

  1. Web ブラウザーで、https://portal.azure.comAzure portal にサインインします。
  2. ページ上部の検索バーの右側にある [>_] ボタンを使用して、Azure portal に新しい Cloud Shell を作成します。メッセージが表示されたら、PowerShell 環境を選んで、ストレージを作成します。 次に示すように、Azure portal の下部にあるペインに、Cloud Shell のコマンド ライン インターフェイスが表示されます。

    Azure portal と Cloud Shell のペイン

    : 前に Bash 環境を使ってクラウド シェルを作成している場合は、そのクラウド シェル ペインの左上にあるドロップダウン メニューを使って、PowerShell に変更します。

  3. ペインの上部にある区分線をドラッグして Cloud Shell のサイズを変更したり、ペインの右上にある X アイコンを使用して、ペインを最小化または最大化したり、閉じたりすることができます。 Azure Cloud Shell の使い方について詳しくは、Azure Cloud Shell のドキュメントをご覧ください。

  4. PowerShell のペインで、次のコマンドを入力して、リポジトリを複製します。

     rm -r mslearn-databricks -f
     git clone https://github.com/MicrosoftLearning/mslearn-databricks
    
  5. リポジトリをクローンした後、次のコマンドを入力して setup.ps1 スクリプトを実行します。これにより、使用可能なリージョンに Azure Databricks ワークスペースがプロビジョニングされます。

     ./mslearn-databricks/setup.ps1
    
  6. メッセージが表示された場合は、使用するサブスクリプションを選択します (これは、複数の Azure サブスクリプションへのアクセス権を持っている場合にのみ行います)。
  7. スクリプトの完了まで待ちます。通常、約 5 分かかりますが、さらに時間がかかる場合もあります。 待っている間に、Azure Databricks ドキュメントの記事「Azure Databricks とは」を確認してください。

クラスターの作成

Azure Databricks は、Apache Spark “クラスター” を使用して複数のノードでデータを並列に処理する分散処理プラットフォームです。** 各クラスターは、作業を調整するドライバー ノードと、処理タスクを実行するワーカー ノードで構成されています。 この演習では、ラボ環境で使用されるコンピューティング リソース (リソースが制約される場合がある) を最小限に抑えるために、単一ノード クラスターを作成します。 運用環境では、通常、複数のワーカー ノードを含むクラスターを作成します。

ヒント: Azure Databricks ワークスペースに 13.3 LTS 以降のランタイム バージョンを持つクラスターが既にある場合は、それを使ってこの演習を完了し、この手順をスキップできます。

  1. Azure portal で、スクリプトによって作成された msl-xxxxxxx リソース グループ (または既存の Azure Databricks ワークスペースを含むリソース グループ) に移動します
  2. Azure Databricks Service リソース (セットアップ スクリプトを使って作成した場合は、databricks-xxxxxxx という名前) を選択します。
  3. Azure Databricks ワークスペースの [概要] ページで、[ワークスペースの起動] ボタンを使用して、新しいブラウザー タブで Azure Databricks ワークスペースを開きます。サインインを求められた場合はサインインします。

    ヒント: Databricks ワークスペース ポータルを使用すると、さまざまなヒントと通知が表示される場合があります。 これらは無視し、指示に従ってこの演習のタスクを完了してください。

  4. 左側のサイドバーで、[(+) 新規] タスクを選択し、[クラスター] を選択します。
  5. [新しいクラスター] ページで、次の設定を使用して新しいクラスターを作成します。
    • クラスター名: “ユーザー名の” クラスター (既定のクラスター名)**
    • ポリシー:Unrestricted
    • クラスター モード: 単一ノード
    • アクセス モード: 単一ユーザー (自分のユーザー アカウントを選択)
    • Databricks Runtime のバージョン: 13.3 LTS (Spark 3.4.1、Scala 2.12) 以降
    • Photon Acceleration を使用する: 選択済み
    • ノードの種類: Standard_DS3_v2
    • 非アクティブ状態が ** 20 ** 分間続いた後終了する
  6. クラスターが作成されるまで待ちます。 これには 1、2 分かかることがあります。

: クラスターの起動に失敗した場合、Azure Databricks ワークスペースがプロビジョニングされているリージョンでサブスクリプションのクォータが不足していることがあります。 詳細については、「CPU コアの制限によってクラスターを作成できない」を参照してください。 その場合は、ワークスペースを削除し、別のリージョンに新しいワークスペースを作成してみてください。 次のように、セットアップ スクリプトのパラメーターとしてリージョンを指定できます: ./mslearn-databricks/setup.ps1 eastus

Spark を使用してデータを分析する

多くの Spark 環境と同様に、Databricks では、ノートブックを使用して、データの探索に使用できるノートと対話型のコード セルを組み合わせることができます。

  1. products.csv ファイルを https://raw.githubusercontent.com/MicrosoftLearning/mslearn-databricks/main/data/products.csv からローカル コンピューターにダウンロードし、products.csv として保存します。
  2. サイドバーの [(+) 新規] リンク メニューで、[ファイル アップロード] を選択します。
  3. コンピューターにダウンロードした products.csv ファイルをアップロードします。
  4. [ファイル アップロードからのテーブルの作成または変更] ページで、ページの右上でクラスターが選択されていることを確認します。 次に、hive_metastore カタログとその既定のスキーマを選択して、products という名前の新しいテーブルを作成します。
  5. [カタログ エクスプローラー] ページで、products ページが作成されたら、[作成] ボタン メニューで、[ノートブック] を選択してノートブックを作成します。
  6. ノートブックで、ノートブックがクラスターに接続されていることを確認し、最初のセルに自動的に追加されたコードを確認します。これは次のようになるはずです。

     %sql
     SELECT * FROM `hive_metastore`.`default`.`products`;
    
  7. セルの左側にある [▸ セルの実行] メニュー オプションを使用してセルを実行し、ダイアログが表示されたらクラスターを起動してアタッチします。
  8. コードによって実行される Spark ジョブが完了するまで待ちます。 このコードは、アップロードしたファイルに基づいて作成されたテーブルからデータを取得します。
  9. 結果の表の上にある [+][視覚化] の順に選択して視覚化エディターを表示し、次のオプションを適用します。
    • 視覚化の種類: 横棒
    • X 列: カテゴリ
    • Y 列: “新しい列を追加し、” ProductID “を選択します”。** Count “集計を適用します”。** **

    視覚化を保存し、次のようにノートブックに表示されることを確認します。

    カテゴリ別の製品数を示す横棒グラフ

データフレームを使用してデータを分析する

ほとんどのデータ分析では、前の例のような SQL コードの使用で十分ですが、一部のデータ アナリストやデータ サイエンティストは、データを効率的に操作するために、PySpark (Python の Spark 最適化バージョン) などのプログラミング言語における “データフレーム” などのネイティブ Spark オブジェクトを使用する可能性があります。**

  1. ノートブックで、先ほど実行したコード セルのグラフ出力の下で、+ アイコンを使用して新しいセルを追加します。
  2. この新しいセルに次のコードを入力して実行します。

     df = spark.sql("SELECT * FROM products")
     df = df.filter("Category == 'Road Bikes'")
     display(df)
    
  3. “ロード バイク” カテゴリの製品を返す新しいセルを実行します。**

クリーンアップ

Azure Databricks ポータルの [コンピューティング] ページでクラスターを選択し、[■ 終了] を選択してクラスターをシャットダウンします。

Azure Databricks を調べ終わったら、作成したリソースを削除できます。これにより、不要な Azure コストが生じないようになり、サブスクリプションの容量も解放されます。