メインコンテンツまでスキップ

チュートリアル: Databricks Connect を使用してローカルで Databricks アプリを開発する

Databricks アプリを使用すると、Databricks プラットフォーム上で安全なデータと AI アプリケーションを作成し、ユーザーと簡単に共有できます。PySpark と Databricks Connect を使用して Databricks アプリを開発することで、アプリで Apache Spark のパワーを活用できます。JDBC ドライバーと同様に、Databricks Connect は任意のアプリケーションに埋め込んで Databricks と対話することができます。さらに、 Databricks Connect PySparkを通じてPythonの完全な表現力を提供し、 SQLプログラミング言語のインピーダンスの不一致を排除し、 Databricksコンピュート上のSparkを使用してすべてのデータ変換を実行できるようにします。

アプリとDatabricks Connectの詳細については、 Databricksアプリ」およびDatabricks Connectとは何ですか?」を参照してください。

このチュートリアルでは、Databricks ワークスペースでシンプルな Databricks アプリを作成し、Databricks Connect を使用してローカルで開発する方法について説明します。アプリは、 Python 3.11 およびDatabricks Connect 15.4.* を使用してサーバーレス コンピュート上で実行されます。 異なるバージョンを使用するには、Python バージョンと Databricks Connect バージョンに互換性がある必要があります。Databricks Connect のバージョンを参照してください。

ヒント

Databricks Connect を使用するより高度なサンプル アプリについては、 Databricks デモ GitHub リポジトリを参照してください。

要件

  • Databricks ワークスペースとローカル開発環境は、Databricks アプリの要件を満たしている必要があります。「Databricks アプリのワークスペースと開発環境のセットアップ」を参照してください。
  • Databricksワークスペースでは、 Unity Catalogとサーバレス コンピュートが有効になっている必要があります。
  • Databricks CLI バージョン 0.250.0 以上がローカル マシンにインストールされています。インストールされている Databricks CLI のバージョンを確認するには、コマンドdatabricks -vを実行します。Databricks CLI をインストールするには、 「Databricks CLI のインストールまたは更新」を参照してください。
  • Python 3.11 がローカル マシンにインストールされています。

ステップ 1: 認証とサーバレスコンピュートを設定する

このチュートリアルでは、サーバレス コンピュートとDatabricks OAuthユーザー対マシン (U2M) 認証、およびDatabricksワークスペースへの認証にDatabricks構成プロファイルを使用します。

次のコマンドを実行して、Databricks CLI を使用して OAuth ログインを開始します。プロファイル名としてDEFAULT使用し、画面上の指示に従って Databricks ワークスペースにログインします。

Bash
databricks auth login --configure-serverless --host <workspace-url>

ステップ 2: アプリを作成する

次に、ワークスペースに Databricks アプリを作成します。

  1. Databricks ワークスペースで、左側のサイドバーの [+ 新規] > [アプリ] をクリックします。

  2. [テンプレートからインストール] で、 [ダッシュ] タブに移動します。

  3. Hello world テンプレートを選択します。

  4. アプリに dash-hello-world という名前を付けて、 「インストール」を クリックします。

これにより、選択したテンプレートに基づいて新しいアプリが作成され、ワークスペースにデプロイされて起動します。アプリを表示するには、 概要 ページの上部にある 実行 URL をクリックします。

Hello Worldアプリを見る

ステップ 3: アプリをローカルマシンにコピーします

次に、アプリのソース コードをローカル マシンにダウンロードします。

  1. アプリページの 「ファイルを同期」 の最初のコマンドをコピーします。

  2. ローカル ターミナルでディレクトリdash-hello-worldを作成し、コピーしたコマンドを実行します。次に例を示します。

    Bash
    mkdir dash-hello-world
    cd dash-hello-world
    databricks workspace export-dir /Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_01-18_38/dash-hello-world-app .

このコマンドは、2 つの新しいファイルをapp.pyおよびapp.yamlという名前のディレクトリにコピーします。app.yaml 、エントリ ポイントや権限などのアプリの構成を定義します。app.py 、アプリの機能とユーザー インターフェースを実装するコードが含まれています。

ステップ 4: Databricks Connect追加する

Databricks アプリ用の Python 仮想環境を作成し、 databricks-connect要件として追加します。

  1. プロジェクト フォルダーのルートに.myvenvという仮想環境を作成し、アクティブ化します。

    Bash
    python3.11 -m venv .myvenv
    source .myvenv/bin/activate
  2. プロジェクトのrequirements.txtでアプリの依存関係を更新します。databricks-connect==15.4.*を追加:

    dash== 3.3.*
    dash-bootstrap-components==2.0.*
    pandas
    plotly==6.5.*
    databricks-sql-connector
    databricks-sdk
    python-dotenv
    dash-ag-grid
    databricks-connect==15.4.*
  3. requirements.txtの依存関係を仮想環境にインストールします。

    Bash
    pip install -r requirements.txt

ステップ 5: アプリを変更してローカルでテストする

アプリをローカルでカスタマイズして開発します。

  1. Databricks Connect を使用して Databricks からデータを読み取り、Apache Spark を活用してデータ変換を実行するようにapp.pyを更新します。また、データをインタラクティブにし、スタイル設定オプションを追加し、データのアップロードを可能にするコードを追加します。

    Python
    # app.py

    import pandas as pd
    from dash import Dash, dcc, html
    import plotly.express as px
    import dash_bootstrap_components as dbc
    from databricks.connect.session import DatabricksSession
    from pyspark.sql.functions import col

    spark = DatabricksSession.builder.serverless().getOrCreate()
    # Data transformations with Spark in Python
    df = (spark.read.table("samples.nyctaxi.trips")
    .select('trip_distance', 'fare_amount')
    .filter(col('trip_distance') < 10)
    .limit(1000))

    chart_data = df.toPandas()

    # Initialize the Dash app with Bootstrap styling
    dash_app = Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])

    # Define the app layout
    dash_app.layout = dbc.Container([
    dbc.Row([dbc.Col(html.H1('Trip cost by distance'), width=12)]),
    dcc.Graph(
    id='fare-scatter',
    figure=px.scatter(chart_data, x='trip_distance', y='fare_amount',
    labels={'trip_distance': 'Trip distance (miles)', 'fare_amount': 'Fare amount (USD)'},
    template='simple_white'),
    style={'height': '500px', 'width': '1000px'}
    )
    ], fluid=True)

    if __name__ == '__main__':
    dash_app.run(debug=True)
  2. アプリをローカルで実行してテストします。Python または Databricks CLI を使用して実行できます。

    • Python アプリを実行します。

      Bash
      python app.py

      アプリを表示するには、ブラウザ ウィンドウでhttp://127.0.0.1:8050/に移動します。

    • または、 databricks apps run-localコマンドを使用してアプリを実行し、デバッグします。このコマンドは、すべての依存関係をインストールし、仮想環境を準備してから、ポート 5678 でアプリとデバッガーを起動します。

      Bash
      databricks apps run-local --prepare-environment --debug

      ブラウザウィンドウでhttp://localhost:8001に移動してアプリを表示します。

      Visual Studio Code でブレークポイントを設定するには、Python デバッガー拡張機能をインストールし、 [実行] > [デバッグの開始] > [リモート アタッチ] に移動します。

旅行費用アプリをローカルで表示する

ステップ 6: アプリを再デプロイする

最後に、ローカルで変更したアプリをDatabricksワークスペースにアップロードし、コンピュートにデプロイします。

重要

Python 仮想環境全体を Databricks にアップロードしないようにするには、プロジェクトのルートに.myvenvを含む.gitignoreファイルが存在するか、これらのファイルを除外する.myvenvフォルダー内に存在している必要があります。

  1. Databricksワークスペースで、[コンピュート]、 [アプリ] の クリックします。 dash-hello-worldアプリを選択します。

  2. [ファイルの同期] で、 [将来の編集を同期] の下のコマンドを Databricks に コピーし、ローカル アプリ プロジェクト フォルダーから実行します。

    Bash
    databricks sync --watch . /Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_05-21_35/dash-hello-world-app
  3. 変更したアプリをコンピュートにデプロイするには、アプリ ページの [Deploy to Databricks Apps] の下にあるコマンドをコピーし、ローカル アプリ プロジェクト フォルダーから実行します。

    Bash
    databricks apps deploy dash-hello-world --source-code-path /Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_05-21_35/dash-hello-world-app

デプロイが成功した場合、コマンドは確認 JSON を出力します。

JSON
{
"create_time": "2025-12-06T01:30:16Z",
"creator": "someone@example.com",
"deployment_artifacts": {
"source_code_path": "/Workspace/Users/1234abcd-5678-90ab-cdef-123456abcdef/src/abcd1234efgh5678ijkl9012mnop3456"
},
"deployment_id": "abcd1234efgh5678ijkl9012mnop3456",
"mode": "SNAPSHOT",
"source_code_path": "/Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_05-21_35/dash-hello-world-app",
"status": {
"message": "App started successfully",s
"state": "SUCCEEDED"
},
"update_time": "2025-12-06T01:30:20Z"
}

次のステップ