Databricks Connect for Python

注記

この記事では、Databricks Runtime13.3LTLTS以降のDatabricks Connectについて説明します。

この記事では、PythonとPyCharmを使用してDatabricks Connectをすぐに導入する方法を説明します。

Databricks Connectを使用することにより、PyCharmなどの一般的なIDE、ノートブックサーバー、その他のカスタムアプリケーションをDatabricksクラスターに接続できます。詳しくは、「Databricks Connectとは」を参照してください。

チュートリアル

このチュートリアルをスキップして別のIDEを使用するには、「 次のステップ」を参照してください。

要件

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

  • 対象のDatabricksワークスペースでは、Unity Catalogが有効になっている必要があります。

  • PyCharmがインストールされていること。このチュートリアルは、PyCharm Community Edition 2023.3.5でテストされました。PyCharmの別のバージョンまたはエディションを使用している場合、手順が以下とは異なる可能性があります。

  • お使いのコンピュートでDatabricks Connect for Pythonのインストール要件を満たしている必要があります。

  • クラシックコンピュートを使用している場合は、クラスターのIDが必要です。クラスターIDを取得するには、ワークスペースでサイドバーの [コンピュート] をクリックし、クラスターの名前を選択ます。Webブラウザのアドレスバーに、URLのclustersからconfigurationまでの文字列をコピーします。

ステップ 1:Databricks 認証を構成する

このチュートリアルでは、Databricks OAuth ユーザー対マシン (U2M) 認証とDatabricks構成プロファイルを使用して、Databricksワークスペースへの認証を行います。別の認証方法を使用する場合は、「接続プロパティを構成する」を参照してください。

OAuth U2M 認証を構成するには、Databricks CLI が必要です。 Databricks CLIのインストールに関する情報については、「Databricks CLIのインストールまたは更新」を参照してください。

次のように、OAuth U2M認証を開始します。

  1. Databricks CLIを使用して、ターゲットワークスペースごとに以下のコマンドを実行し、ローカルでOAuthトークン管理を開始します。

    次のコマンドで、<workspace-url> をDatabricksワークスペース インスタンスの URLに置き換えます(例:https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

    databricks auth login --configure-cluster --host <workspace-url>
    

    ヒント

    サーバレス コンピュートを Databricks Connectとともに使用するには、 サーバレス コンピュートへの接続の設定を参照してください。

  2. Databricks CLIは、入力した情報をDatabricks構成プロファイルとして保存するよう促します。Enterを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力してください。同じ名前の既存のプロファイルは、入力した情報で上書きされます。プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。

    既存のプロファイルのリストを取得するには、別のターミナルまたはコマンドプロンプトでDatabricks CLIを使用してコマンドdatabricks auth profilesを実行します。特定のプロファイルの既存の設定を表示するには、コマンドdatabricks auth env --profile <profile-name>を実行します。

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

  4. ターミナルまたはコマンドプロンプトに表示される利用可能なクラスターのリストで、上矢印キーと下矢印キーを使用してワークスペース内の対象のDatabricksクラスターを選択し、Enterを押します。クラスターの表示名の一部を入力して、利用可能なクラスターのリストを絞り込むこともできます。

  5. プロファイルの現在のOAuthトークンの値と、トークンの有効期限を表示するには、次のいずれかのコマンドを実行します。

    • databricks auth token --host <workspace-url>

    • databricks auth token -p <profile-name>

    • databricks auth token --host <workspace-url> -p <profile-name>

    同じ--host値を持つプロファイルが複数ある場合、Databricks CLIが正しいOAuthトークン情報を見つけられるように--host-pオプションを一緒に指定する必要がある場合があります。

ステップ2:プロジェクトを作成する

  1. PyCharmを起動します。

  2. メインメニューで、[ファイル] > [新しいプロジェクト] をクリックします。

  3. [新しいプロジェクト] ダイアログで、[Pure Python] をクリックします。

  4. [場所] には、フォルダーアイコンをクリックし、画面上の指示に従って新しいPythonプロジェクトへのパスを指定します。

  5. [main.py welcomeスクリプトを作成] は選択したままにしておきます。

  6. [インタープリターのタイプ] では [Project venv] をクリックします。

  7. [Pythonのバージョン] を展開し、フォルダアイコンまたはドロップダウンリストを使用して、前述の要件にあるPythonインタープリターへのパスを指定します。

  8. [作成] をクリックします。

PyCharmプロジェクトを作成する

ステップ3:Databricks Connectパッケージを追加する

  1. PyCharmのメインメニューで、 [表示] > [ツールウィンドウ] > [Pythonパッケージ] をクリックします。

  2. 検索ボックスに「 databricks-connect」と入力します。

  3. [PyPIリポジトリ] のリストから [databricks-connect] をクリックします。

  4. 結果ウィンドウの [最新] のドロップダウンリストから、クラスターのDatabricks Runtimeバージョンと一致するバージョンを選択します。たとえば、クラスターにDatabricks Runtime 14.3がインストールされている場合は、[14.3.1]を選択します。

  5. [パッケージのインストール] をクリックします。

  6. パッケージがインストールされたら、[Pythonパッケージ] のウィンドウを閉じてかまいません。

Databricks Connectパッケージをインストールする

ステップ4:コードを追加する

  1. [プロジェクト] ツールウィンドウでプロジェクトのルートフォルダーを右クリックし、 [新規] > [Pythonファイル]をクリックします。

  2. main.py と入力し、 [Pythonファイル] をダブルクリックします。

  3. 構成プロファイルの名前に応じて、以下のコードをファイルに入力し、ファイルを保存します。

    ステップ1の構成プロファイルがDEFAULTという名前である場合は、次のコードをファイルに入力して、ファイルを保存します。

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    

    ステップ1の構成プロファイルがDEFAULTという名前でない場合は、代わりに次のコードをファイルに入力します。プレースホルダー<profile-name>をステップ1で作成した構成プロファイルの名前に置き換えて、ファイルを保存します。

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    

ステップ 5:コードを実行する

  1. リモートのDatabricksワークスペースでターゲット・クラスターを開始します。

  2. クラスターが起動したら、メインメニューで [実行] > [‘main’ を実行] をクリックします。

  3. [実行] ツールウィンドウ([表示] > [ツールウィンドウ] > [実行])にある [実行] タブの [メイン] ペインに、samples.nyctaxi.tripsの最初の5行が表示されます。

ステップ 6:コードをデバッグする

  1. クラスターが実行されている状態で、前のコードで、df.show(5)の横のガターをクリックしてブレークポイントを設定します。

  2. メインメニューで、[実行] > [‘main’ をデバッグ] をクリックします。

  3. [デバッグ] ツールウィンドウ([ビュー] > [ツールウィンドウ] > [デバッグ])の [デバッガー] タブの [変数] ペインで df 変数と spark 変数ノードを展開し、コードの df 変数と spark 変数の情報を参照します。

  4. [デバッグ] ツールウィンドウのサイドバーで、緑色の矢印([プログラムの再開])アイコンをクリックします。

  5. [デバッガー] タブの [コンソール] ペインに、 samples.nyctaxi.trips の最初の5行が表示されます。

PyCharmプロジェクトをデバッグする

次のステップ

Databricks Connectの詳細については、以下の記事を参照してください。