注
この記事は、Databricks Connect 15.4 LTS 以降に適用されます。
この記事では、IDE でプロジェクトを作成し、仮想環境をセットアップし、Databricks Connect for Python をインストールし、Databricks ワークスペースのサーバーレス コンピューティングでコードを実行する方法について説明します。
このチュートリアルでは、Python 3.12 と Databricks Connect 16.4 LTS を使用します。 Databricks Connect の他のバージョンの Python を使用するには、互換性がある必要があります。 バージョン サポート マトリックスを参照してください。
要求事項
このチュートリアルを完了するには、次の要件を満たす必要があります。
- ワークスペース、ローカル環境、コンピューティングは、Databricks Connect for Python の要件を満たしています。 Databricks Connect の使用要件を参照してください。
- ワークスペースでサーバーレス コンピューティングが有効になっています。 「サーバーレス コンピューティングに接続する」を参照してください。
- Python 3.12 がインストールされている。
- Visual Studio Code などの IDE がインストールされている。
- ローカル コンピューターに Databricks CLI がインストールされている。 「Databricks CLI のインストールまたは更新」を参照してください。
手順 1: Databricks 認証を構成する
このチュートリアルでは、Databricks OAuth ユーザー対マシン (U2M) 認証 と Databricks 構成プロファイル を使用して、Databricks ワークスペースに対する認証を行います。
Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。 次のコマンドで、
<workspace-url>を Databricks ワークスペース インスタンスの URL (たとえば、https://dbc-a1b2345c-d6e7.cloud.databricks.com) に置き換えます。databricks auth login --host <workspace-url>Databricks CLI では、Databricks 構成プロファイルとして入力した情報を保存するように求められます。
Enterキーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイル名を入力します。 Databricks では、プロファイル名としてDEFAULTを使用することをお勧めします。Web ブラウザーで、画面の指示に従って Databricks ワークスペースにログインします。
手順 2: 新しい Python 仮想環境を作成する
プロジェクト フォルダーを作成し、IDE で開きます。 たとえば、Visual Studio Code のメイン メニューで、[ファイル]、[フォルダーの開く>開く>開く] の順にクリックします。
プロジェクト フォルダーのルートにあるターミナル ウィンドウを開きます。 たとえば、Visual Studio Code のメイン メニューで、[表示]、[>] の順にクリックします。
ターミナルで次のコマンドを実行して、プロジェクト フォルダーのルートに
venvという名前のプロジェクトの仮想環境を作成します。python3.12 -m venv .venv仮想環境をアクティブ化します。
# Linux/Mac source .venv/bin/activate# Windows .venv\Scripts\activate
手順 3: Databricks Connect をインストールする
Databricks Connect をインストールします。 Databricks Connect 16.4 の最新リリース バージョンについては、「 Databricks Connect for Databricks Runtime 16.4」を参照してください。
pip install "databricks-connect==16.4.*"
手順 4: コードを追加して実行する
プロジェクトに新しい Python ファイル
main.pyを追加する次のコードをファイルに入力し、プレースホルダー
<profile-name>を手順 1 の構成プロファイルの名前に置き換えてから、ファイルを保存します。 既定の構成プロファイル名はDEFAULT。from databricks.connect import DatabricksSession spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate() df = spark.read.table("samples.nyctaxi.trips") df.show(5)次のコマンドを使用してコードを実行します。
python3 main.pyテーブルの 5 行が返されます。
+--------------------+---------------------+-------------+-----------+---------+-----------+ |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 セッション ビルダーで StandardDedicated API を使用してコードをクラシック クラスター (.またはserverless()) にデプロイすると、クラシック クラスターをクライアントとして使用して新しいサーバーレス Spark セッションが作成されます。
コードを柔軟に運用できるように、Spark セッションにパラメーターを含めないようにする必要があります。
spark = DatabricksSession.builder.getOrCreate()
ただし、このコードを Databricks で実行すると、Databricks コンピューティングの既定のグローバル Spark セッションが使用されます。
IDE でサーバーレス コンピューティングを有効にするには、パラメーターが指定されていない場合に DatabricksSession.builder によって選択される DEFAULT 構成プロファイルを使用します。
テキスト エディターを使用して、
.databrickscfgファイルを開きます。このファイルは次の場所にあります。Unix、Linux、または macOS 上の
$HOMEユーザーのホーム フォルダー:~/.databrickscfg、またはWindows 上の
%USERPROFILE%(ユーザー ホーム) フォルダー。 たとえば、macOS の場合:nano ~/.databrickscfg
serverless_compute_id = autoプロファイルにDEFAULTを追加します。[DEFAULT] host = https://my-workspace.cloud.databricks.com auth_type = databricks-cli serverless_compute_id = auto変更を保存し、エディターを終了します。
一般的な Spark セッションを使用するようにコードを変更し、実行します。
from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate() df = spark.read.table("samples.nyctaxi.trips") df.show(5)python3 main.py
DEFAULT 構成プロファイルを使用して、IDE から Databricks Connect を使用して、Databricks サーバーレス コンピューティングで運用対応コードを正常に実行しました。
ヒント
環境変数を使用して、特定の Databricks コンピューティングへの接続を設定することもできます。
- サーバーレス:
DATABRICKS_SERVERLESS_COMPUTE_ID=auto - クラシック:
DATABRICKS_CLUSTER_ID=<your_cluster_id>