Databricks ユーティリティ with Databricks Connect for Python

この記事では、Databricks Runtime 13.3 LTS 以降の Databricks Connect について説明します。

この記事では、Databricks Connect for Python で Databricks ユーティリティ を使用する方法について説明します。 Databricks Connect を使用すると、一般的な IDE、ノートブック サーバー、およびカスタム アプリケーションを Databricks クラスターに接続できます。 「Databricks Connect とは」を参照してください。この記事の Scala バージョンについては、「 Databricks Connect for Scala を使用した Databricks ユーティリティ」を参照してください。

Databricks Connectの使用を開始する前に、Databricks Connect クライアントをセットアップする必要があります。

次のように、Databricks Connect を使用して Databricks ユーティリティにアクセスします。

  • WorkspaceClient クラスの dbutils 変数を使用して、Databricks ユーティリティにアクセスします。WorkspaceClient クラスは Databricks SDK for Python に属し、Databricks Connect に含まれています。

  • dbutils.fs を使用して、Databricks Utilities の fs ユーティリティにアクセスします。

  • dbutils.secrets を使用して、Databricks Utilities シークレット ユーティリティにアクセスします

  • 上記のユーティリティ以外の Databricks ユーティリティ機能は、 dbutilsから使用できません。

ヒント

また、付属の Databricks SDK for Python を使用して、前述の Databricks ユーティリティ APIsだけでなく、使用可能な任意の Databricks REST API にアクセスすることもできます。 PyPI の databricks-sdk を参照してください。

WorkspaceClient初期化するには、ワークスペースで Databricks SDK を認証するための十分な情報を指定する必要があります。たとえば、次のことができます。

  • ワークスペースの URL とアクセストークンをコード内に直接ハードコーディングし、次のように WorkspaceClient 初期化します。 このオプションはサポートされていますが、コードがバージョン管理にチェックインされている場合や共有されている場合、アクセストークンなどの機密情報が公開される可能性があるため、Databricks ではこのオプションを お勧めしません

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(host  = f"https://{retrieve_workspace_instance_name()}",
                        token = retrieve_token())
    
  • フィールド hosttokenを含む設定プロファイルを作成または指定し、次のようにWorkspaceClientを初期化します。

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(profile = "<profile-name>")
    
  • Databricks Connect に対して設定するのと同じ方法で環境変数を DATABRICKS_HOSTDATABRICKS_TOKEN に設定し、次のように WorkspaceClient 初期化します。

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    

Databricks SDK for Python では、Databricks Connect の SPARK_REMOTE 環境変数は認識されません。

Databricks SDK for Python の追加の Databricks 認証オプションと、ワークスペース レベルではなくアカウント レベルで使用可能な Databricks REST APIs にアクセスするために Databricks SDK 内でAccountClientを初期化する方法については、PyPI の databricks-sdk に関するページを参照してください。

次の例は、Databricks SDK for Python を使用して Databricks ユーティリティを自動化する方法を示しています。 この例では、ワークスペース内の Unity Catalog ボリュームのパスに zzz_hello.txt という名前のファイルを作成し、ファイルからデータを読み取ってから削除します。 この例では、環境変数 DATABRICKS_HOSTDATABRICKS_TOKEN がすでに設定されていることを前提としています。

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

file_path = "/Volumes/main/default/my-volume/zzz_hello.txt"
file_data = "Hello, Databricks!"
fs = w.dbutils.fs

fs.put(
  file      = file_path,
  contents  = file_data,
  overwrite = True
)

print(fs.head(file_path))

fs.rm(file_path)

Databricks SDK for Python ドキュメントの 「dbutils との相互作用 」も参照してください。