次の方法で共有


Databricks Connect for Python を使用した Databricks ユーティリティ

Note

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

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

Note

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

Databricks Connect を使用して、次のように Databricks Utilities にアクセスします:

  • WorkspaceClient クラスの dbutils 変数を使って Databricks Utilities にアクセスします。 WorkspaceClient クラスは Databricks SDK for Python に属しており、Databricks Connect に含まれています。
  • dbutils.fs を使って、Databricks Utilities fs ユーティリティにアクセスします。
  • dbutils.secrets を使用して、Databricks Utilities シークレット ユーティリティにアクセスします。
  • dbutils からは、上記のユーティリティ以外の Databricks Utilities 機能は利用できません。

ヒント

付属の Databricks SDK for Python を使用して、上記の Databricks Utilities API だけでなく、使用可能なすべての 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 の追加の Azure Databricks 認証オプション、および Databricks SDK 内で AccountClient を初期化して、使用可能な Databricks REST API にワークスペース レベルではなくアカウント レベルでアクセスする方法については、PyPI の databricks-sdk を参照してください。

次の例は、Databricks SDK for Python を使って Databricks Utilities を自動化する方法を示しています。 この例では、ワークスペース内の 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 の操作」も参照してください。