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

チュートリアル: サーバレス コンピュートによるコードの実行

注記

この記事は、Databricks Connect 15.4 LTS 以降に適用されます。

この記事では、IDE でプロジェクトを作成し、仮想環境をセットアップし、 Databricks Connect for Pythonをインストールし、 Databricks ワークスペースでサーバレス コンピュートでコードを実行する方法について説明します。

このチュートリアルでは、Python 3.12 と Databricks Connect 16.4 LTS を使用します。Databricks Connect の他のバージョンの Python を使用するには、互換性が必要です。バージョンサポートマトリックスを参照してください。

必要条件

このチュートリアルを完了するには、次の要件を満たす必要があります。

  • Python 3.12 がローカルマシンにインストールされています。
  • 対象のDatabricksワークスペースでは、Unity Catalogが有効になっている必要があります。
  • Visual Studio Code などの IDE がインストールされている。
  • ローカル環境とコンピュートが、Databricks Connect for Pythonのインストール バージョンの要件を満たしていること。
  • サーバレス コンピュートがワークスペースで有効になっている。 サーバレス コンピュートに接続を参照してください。
  • ローカル コンピューターに Databricks CLI がインストールされている。Databricks CLI のインストールまたは更新を参照してください。

手順 1: Databricks 認証を構成する

このチュートリアルでは、Databricks OAuth ユーザー間 (U2M) 認証 と Databricks 構成プロファイル を使用して、Databricks ワークスペースを認証します。

  1. Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、ローカルで OAuth トークン管理を開始します。次のコマンドで、 <workspace-url> を Databricks ワークスペース インスタンスの URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

    Bash
    databricks auth login --host <workspace-url>
  2. Databricks CLI では、入力した情報を Databricks 構成プロファイルとして保存するように求められます。Enterを押して、提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力します。Databricks では、プロファイル名として DEFAULT を使用することをお勧めします。

  3. Webブラウザで、画面の指示に従ってDatabricksワークスペースにログインします。

ステップ 2: 新しい Python 仮想環境を作成する

  1. プロジェクトフォルダを作成し、IDE で開きます。たとえば、Visual Studio Code のメインメニューで、 ファイル > フォルダを開く > 開く をクリックします

  2. プロジェクトフォルダのルートでターミナルウィンドウを開きます。たとえば、Visual Studio Code のメインメニューで、 ターミナル > 表示 をクリックします。

  3. ターミナルで次のコマンドを実行して、プロジェクト フォルダーのルートに venv というプロジェクトの仮想環境を作成します。

    Bash
    python3.12 -m venv .venv
  4. 仮想環境をアクティブ化します。

    Bash
    # Linux/Mac
    source .venv/bin/activate
    Bash
    # Windows
    .venv\Scripts\activate

手順 3: Databricks Connect をインストールする

Databricks Connect をインストールします。情報 Databricks Connect 16.4の最新リリースバージョンについては、Databricks Runtime 16.4のDatabricks Connectを参照してください。

pip install "databricks-connect==16.4.*"

手順 4: コードを追加して実行する

  1. 新しい Python ファイル main.py をプロジェクトに追加する

  2. 次のコードをファイルに入力し、プレースホルダ <profile-name> を手順 1 の構成プロファイルの名前に置き換えて、ファイルを保存します。デフォルトの構成プロファイル名は DEFAULTです。

    Python
    from databricks.connect import DatabricksSession

    spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()

    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
  3. 次のコマンドを使用してコードを実行します。

    Bash
    python3 main.py

    テーブルの 5 行が返されます。

    Output
    +--------------------+---------------------+-------------+-----------+---------+-----------+
    |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    | 2016-02-16 22:40:45| 2016-02-16 22:59:25| 5.35| 18.5| 10003| 11238|
    | 2016-02-05 16:06:44| 2016-02-05 16:26:03| 6.5| 21.5| 10282| 10001|
    | 2016-02-08 07:39:25| 2016-02-08 07:44:14| 0.9| 5.5| 10119| 10003|
    | 2016-02-29 22:25:33| 2016-02-29 22:38:09| 3.5| 13.5| 10001| 11222|
    | 2016-02-03 17:21:02| 2016-02-03 17:23:24| 0.3| 3.5| 10028| 10028|
    +--------------------+---------------------+-------------+-----------+----------+-----------+

IDE から Databricks Connect を使用して、Databricks サーバレス コンピュートで最初のクエリを実行することに成功しました。

ステップ 5: コードを本番運用準備完了にする

本番運用シナリオでは、 Spark セッションビルダーでコンピュート仕様を使用しないことが重要です。 たとえば、Spark セッションビルダーの. serverless() APIを使用してクラシック クラスタリング Standard または Dedicated にコードをデプロイすると、クラシック クラスタリングをクライアントとして使用して新しいサーバレス Spark セッションが作成されます。

コードを柔軟にして本番運用に備えるには、 Spark セッションにパラメーターを含めないでください。

Python
spark = DatabricksSession.builder.getOrCreate()

ただし、このコードが Databricksで実行されると、DatabricksコンピュートのデフォルトグローバルSparkセッションが使用されます。

IDE でサーバレス コンピュートを有効にするには、パラメータが指定されていない場合に DatabricksSession.builder によって選択されるデフォルト設定プロファイルを使用します。

  1. 手順 1 の手順を使用して、DEFAULT という名前の構成プロファイルを作成します。

  2. テキスト エディタを使用して、次の場所にある .databrickscfg ファイルを開きます。

    • Unix、Linux、またはmacOSの $HOME ユーザーのホームフォルダー: ~/.databrickscfg、または

    • %USERPROFILE% (Windowsのユーザーホームフォルダー .たとえば、macOS の場合:

      Bash
      nano ~/.databrickscfg
  3. DEFAULTプロファイルにserverless_compute_id = autoを追加します。

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com
    auth_type = databricks-cli
    serverless_compute_id = auto
  4. 変更を保存して、エディターを終了します。

  5. 一般的な Spark セッションを使用するようにコードを変更し、実行します。

    Python
    from databricks.connect import DatabricksSession

    spark = DatabricksSession.builder.getOrCreate()

    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    Bash
    python3 main.py

本番運用対応コードを サーバレス コンピュート Databricks で正常に実行し、デフォルト設定プロファイルを使用して IDE から Databricks Connect を使用して、本番運用対応コードを正常に実行しました。

ヒント

環境変数を使用して、特定の Databricks コンピュートへの接続を設定することもできます。

  • サーバレス: DATABRICKS_SERVERLESS_COMPUTE_ID=auto
  • クラシック: DATABRICKS_CLUSTER_ID=<your_cluster_id>