チュートリアル:ノートブックでデータをクエリーする

このチュートリアルでは、Databricks ノートブック ユーザー インターフェイスを使用して、クラスターとノートブックの作成、データセットからのテーブルの作成、テーブルのクエリ、およびクエリ結果の表示について説明します。

ヒント

Databricks Terraformプロバイダーを使用してこの記事のリソースを作成することもできます。「Terraformでクラスター、ノートブック、ジョブを作成する」を参照してください。

要件

注:

クラスター制御権限がない場合でも、 クラスターにアクセスできる限り、以下のステップのほとんどを完了できます。

ランディングページの左側のサイドバーから、基本的なワークスペースエンティティ(ワークスペース、カタログ、ワークフロー、コンピュート)にアクセスします。 ワークスペースは、ノートブックやライブラリなどの Databricks アセットを格納する特別なルート フォルダーです。

Databricks ノートブック内を移動する方法のガイダンスについては、「 Databricks ノートブックのインターフェイスとコントロール」を参照してください。

ステップ 1: クラスターを作成する

クラスターはDatabricksの計算リソースの集合体です。クラスターを作成するには、次の手順を実行します。

  1. サイドバーで、「 コンピュートアイコン コンピュート」 をクリックします

  2. 「コンピュート」ページで、「コンピュートを作成」をクリックします。

  3. [新しいコンピュート] ページで、[ バージョン] Databricks Runtime ドロップダウンから [12.2 LTS] (Scala 2.12、Spark 3.3.2) 以降を選択します。

  4. [クラスターの作成] をクリックします。

ステップ2:ノートブックを作成する

ノートブックは、Apache Spark クラスターで計算を実行するセルのコレクションです。 ノートブックの使用の詳細については、「 Databricks ノートブックの概要」を参照してください。 ワークスペースでノートブックを作成するには:

  1. サイドバーで、[ワークスペースアイコン ワークスペース] をクリックします 。

  2. ホームホームアイコンフォルダで、青い[追加] ボタン追加ボタン>ノートブックをクリックします。

  3. ノートブックの既定の名前を独自のタイトルに置き換え、言語ドロップダウンで [ SQL ] を選択します。 この選択により、ノートブックの 既定の言語 が決まります。

    言語とタイトルを選択する
  4. 作成したクラスターにノートブックをアタッチします。ノートブックツールバーのクラスターセレクターをクリックし、ドロップダウンメニューからクラスターを選択します。クラスターが表示されない場合は、[詳細…] をクリックし、ダイアログのドロップダウンメニューからクラスターを選択します。

ステップ3:テーブルを作成する

Databricks クラスターにインストールされた分散ファイル システムである Databricks ファイルシステム (DBFS) にマウントされたデータセットのコレクションであるサンプル データセット で入手できる サンプル CSV データ ファイルのデータを使用してテーブルを作成します。テーブルを作成するには、2 つのオプションがあります。

オプション1:CSVデータからSparkテーブルを作成する

このオプションは、すぐに使い始めたい、標準的なパフォーマンスしか必要としない場合に使用します。このコードスニペットをコピーしてノートブックのセルに貼り付けます。

DROP TABLE IF EXISTS diamonds;

CREATE TABLE diamonds USING CSV OPTIONS (path "/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv", header "true")

オプション2:CSVデータをDelta Lakeフォーマットに書き込み、Deltaタテーブルを作成する

Delta Lakeは、高速読み取りやその他の利点を可能にする強力なトランザクションストレージレイヤーを提供します。Delta Lake形式は、Parquetファイルとトランザクションログで構成されます。このオプションを使用すると、テーブルに対する今後の操作で最高のパフォーマンスが得られます。

  1. CSVデータを DataFrame に読み込み、 Delta Lake 形式で書き出します。 このコマンドは Python 言語マジック コマンドを使用しており、ノートブックのデフォルト言語 (SQL) 以外の言語で コマンドを実行できます。 次のコード スニペットをコピーしてノートブックのセルに貼り付けます。

    %python
    
    diamonds = (spark.read
      .format("csv")
      .option("header", "true")
      .option("inferSchema", "true")
      .load("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv")
    )
    
    diamonds.write.format("delta").mode("overwrite").save("/mnt/delta/diamonds")
    
  2. 格納された場所にDeltaテーブルを作成します。このコードスニペットをコピーしてノートブックのセルに貼り付けます。

    DROP TABLE IF EXISTS diamonds;
    
    CREATE TABLE diamonds USING DELTA LOCATION '/mnt/delta/diamonds/'
    

SHIFT + ENTERを押してセルを実行します。ノートブックはステップ2で作成したクラスターに自動的にアタッチし、セル内のコマンドを実行します。

ステップ4:テーブルをクエリーする

SQLステートメントを実行して、色ごとのダイヤモンドの平均価格をテーブルにクエリーします。

  1. ノートブックにセルを追加するには、セルの下部にマウスを移動し、 セルを追加 アイコンをクリックします。

    セルを追加
  2. このスニペットをコピーして、セルに貼り付けます。

    SELECT color, avg(price) AS price FROM diamonds GROUP BY color ORDER BY COLOR
    
  3. SHIFT + Enterを押します。このノートには、ダイヤモンドの色と平均価格の表が表示されます。

    コマンドを実行

ステップ5:データを表示する

カラー別のダイヤモンド平均価格のチャートを表示します。

  1. [テーブル] タブの横にある [+] をクリックし、 [ビジュアライゼーション]をクリックします。

    ビジュアライゼーションエディタが表示されます。

  2. [ビジュアライゼーションのタイプ] ドロップダウンで、 [バー] が選択されていることを確認します。

  3. [水平グラフ] チェックボックスをオフにします。

  4. y列の集計タイプを[合計]から[平均]に変更します。

  5. [保存]をクリックします。

    棒グラフ