Instalace Databricks Connect pro Python

Poznámka:

Tento článek popisuje Databricks Connect pro Databricks Runtime 13.3 LTS a vyšší.

Tento článek popisuje, jak nainstalovat Databricks Connect pro Python. Podívejte se, co je Databricks Connect? Informace o verzi Scala tohoto článku najdete v tématu Instalace Databricks Connect pro Scala.

Požadavky

Pokud chcete nainstalovat Databricks Connect pro Python, musí být splněny následující požadavky:

  • Pokud se připojujete k výpočetním prostředkům bez serveru, váš pracovní prostor musí splňovat požadavky na výpočetní prostředky bez serveru.

    Poznámka:

    Bezserverové výpočetní prostředky se podporují ve verzi 15.1 Databricks Connect a vyšší. Kromě toho jsou plně kompatibilní verze Databricks Connect s verzí Databricks Runtime nebo nižší než verze Databricks Runtime na bezserverové verzi. Viz poznámky k verzi. Pokud chcete ověřit, jestli je verze Databricks Connect kompatibilní s bezserverovými výpočetními prostředky, přečtěte si téma Ověření připojení k Databricks.

  • Pokud se připojujete ke clusteru, musí cílový cluster splňovat požadavky na konfiguraci clusteru, které zahrnují požadavky na verzi databricks Runtime.

  • Na vývojovém počítači musíte mít nainstalovaný Python 3 a podverze Pythonu nainstalovaná na vývojovém počítači musí splňovat požadavky na verzi v následující tabulce.

    Typ výpočetních prostředků Verze Databricks Connect Kompatibilní verze Pythonu
    Bezserverová architektura 15.1 a vyšší 3.11
    Cluster 15.1 a vyšší 3.11
    Cluster 13.3 LTS až 14.3 LTS 3,10
  • Pokud chcete používat funkce definované uživatelem PySpark, musí podverze Pythonu nainstalované na vývojovém počítači odpovídat podverzi Pythonu, která je součástí modulu Databricks Runtime nainstalovaného v clusteru nebo bezserverové výpočetní prostředí. Pokud chcete najít podverzi Pythonu vašeho clusteru, projděte si část Systémové prostředí poznámky k verzi Databricks Runtime pro váš cluster nebo bezserverové výpočetní prostředky. Viz poznámky k verzi Databricks Runtime a poznámky k verzi kompatibility a bezserverové výpočetní verze.

Aktivace virtuálního prostředí Pythonu

Databricks důrazně doporučuje, abyste pro každou verzi Pythonu, kterou používáte s Databricks Connect, aktivovalo virtuální prostředí Pythonu. Virtuální prostředí Pythonu pomáhají zajistit, abyste společně používali správné verze Pythonu a Databricks Connect. Další informace o těchto nástrojích a o tom, jak je aktivovat, najdete v tématu venv nebo Báseň.

Instalace klienta Databricks Connect

Tato část popisuje, jak nainstalovat klienta Databricks Connect s venv nebo básní.

Poznámka:

Pokud už máte nainstalované rozšíření Databricks pro Visual Studio Code, nemusíte postupovat podle těchto pokynů k nastavení, protože rozšíření Databricks pro Visual Studio Code už má integrovanou podporu pro Databricks Connect pro Databricks Runtime 13.3 LTS a vyšší. Přejděte k ladění kódu pomocí Databricks Connect pro rozšíření Databricks pro Visual Studio Code.

Instalace klienta Databricks Connect s venvem

  1. Po aktivaci virtuálního prostředí odinstalujte PySpark spuštěním uninstall příkazu. To je povinné, protože databricks-connect balíček je v konfliktu s PySpark. Podrobnosti najdete v tématu Konfliktní instalace PySpark. Pokud chcete zkontrolovat, jestli je PySpark už nainstalovaný, spusťte show příkaz.

    # Is PySpark already installed?
    pip3 show pyspark
    
    # Uninstall PySpark
    pip3 uninstall pyspark
    
  2. Pokud je vaše virtuální prostředí stále aktivované, nainstalujte klienta Databricks Connect spuštěním install příkazu. --upgrade Pomocí možnosti upgradujte jakoukoli existující instalaci klienta na zadanou verzi.

    pip3 install --upgrade "databricks-connect==15.4.*"  # Or X.Y.* to match your cluster version.
    

    Poznámka:

    Databricks doporučuje, abyste místo něj databricks-connect==X.Y.* databricks-connect=X.Ypřipojili notaci dot-asterisk, abyste měli jistotu, že je nainstalovaný nejnovější balíček. I když to není požadavek, pomůže vám to zajistit, abyste pro tento cluster mohli používat nejnovější podporované funkce.

Přeskočte dopředu a nakonfigurujte vlastnosti připojení.

Instalace klienta Databricks Connect s poetií

  1. Po aktivaci virtuálního prostředí odinstalujte PySpark spuštěním remove příkazu. To je povinné, protože databricks-connect balíček je v konfliktu s PySpark. Podrobnosti najdete v tématu Konfliktní instalace PySpark. Pokud chcete zkontrolovat, jestli je PySpark už nainstalovaný, spusťte show příkaz.

    # Is PySpark already installed?
    poetry show pyspark
    
    # Uninstall PySpark
    poetry remove pyspark
    
  2. Pokud je vaše virtuální prostředí stále aktivované, nainstalujte klienta Databricks Connect spuštěním add příkazu.

    poetry add databricks-connect@~15.4  # Or X.Y to match your cluster version.
    

    Poznámka:

    Databricks doporučuje, abyste místo databricks-connect@~15.4 databricks-connect==15.4toho použili notaci at-tilde, abyste měli jistotu, že je nainstalovaný nejnovější balíček. I když to není požadavek, pomůže vám to zajistit, abyste pro tento cluster mohli používat nejnovější podporované funkce.

Konfigurace vlastností připojení

V této části nakonfigurujete vlastnosti pro navázání připojení mezi Databricks Connect a clusterem Azure Databricks nebo bezserverovým výpočetním prostředím, které zahrnuje následující:

Poznámka:

  • Ověřování uživateleM (U2M) OAuth se podporuje v sadě Databricks SDK pro Python 0.19.0 a novější. Možná budete muset aktualizovat nainstalovanou verzi sady Databricks SDK pro Python na verzi 0.19.0 nebo vyšší, aby bylo možné použít ověřování OAuth U2M. Viz Začínáme se sadou Databricks SDK pro Python.

    Pro ověřování OAuth U2M musíte před spuštěním kódu Pythonu použít rozhraní příkazového řádku Databricks k ověření. Podívejte se na kurz.

  • Ověřování OAuth typu machine-to-machine (M2M) ověřování OAuth na počítači (M2M) je podporováno v sadě Databricks SDK pro Python 0.18.0 a vyšší. Abyste mohli použít ověřování OAuth M2M, budete možná muset aktualizovat nainstalovanou verzi sady Databricks SDK pro Python na verzi 0.18.0 nebo vyšší. Viz Začínáme se sadou Databricks SDK pro Python.

  • Sada Databricks SDK pro Python zatím neimplementovala ověřování spravovaných identit Azure.

Konfigurace připojení ke clusteru

Ke konfiguraci připojení ke clusteru budete potřebovat ID clusteru. ID clusteru můžete získat z adresy URL. Viz adresa URL a ID clusteru.

Připojení ke clusteru můžete nakonfigurovat jedním z následujících způsobů. Databricks Connect vyhledá vlastnosti konfigurace v následujícím pořadí a použije první nalezenou konfiguraci. Pokročilé informace o konfiguraci najdete v tématu Pokročilé využití Databricks Connect pro Python.

  1. Metoda remote() třídy DatabricksSession.
  2. Konfigurační profil Databricks
  3. Proměnná prostředí DATABRICKS_CONFIG_PROFILE
  4. Proměnná prostředí pro každou vlastnost konfigurace
  5. Konfigurační profil Databricks s názvem DEFAULT

DatabricksSession Metoda třídy remote()

Pro tuto možnost, která se vztahuje pouze na ověřování osobního přístupového tokenu Azure Databricks, zadejte název instance pracovního prostoru, osobní přístupový token Azure Databricks a ID clusteru.

Třídu můžete inicializovat DatabricksSession několika způsoby následujícím způsobem:

  • Nastavte pole hosta tokencluster_id pole v DatabricksSession.builder.remote().
  • Použijte třídu sady Databricks SDK Config .
  • Zadejte konfigurační profil Databricks spolu s polem cluster_id .
  • Nastavte připojovací řetězec Spark Connect v DatabricksSession.builder.remote()souboru .

Místo zadávání těchto vlastností připojení v kódu doporučuje Databricks konfigurovat vlastnosti prostřednictvím proměnných prostředí nebo konfiguračních souborů, jak je popsáno v této části. Následující příklady kódu předpokládají, že zadáte určitou implementaci navrhovaných retrieve_* funkcí, abyste získali potřebné vlastnosti od uživatele nebo z jiného úložiště konfigurace, jako je Azure KeyVault.

Kód pro každý z těchto přístupů je následující:

# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.remote(
   host       = f"https://{retrieve_workspace_instance_name()}",
   token      = retrieve_token(),
   cluster_id = retrieve_cluster_id()
).getOrCreate()
# Use the Databricks SDK's Config class.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
   host       = f"https://{retrieve_workspace_instance_name()}",
   token      = retrieve_token(),
   cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
# Specify a Databricks configuration profile along with the `cluster_id` field.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
   profile    = "<profile-name>",
   cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

Konfigurační profil Databricks

Pro tuto možnost vytvořte nebo identifikujte konfigurační profil Azure Databricks obsahující pole cluster_id a všechna další pole, která jsou nezbytná pro typ ověřování Databricks, který chcete použít.

Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:

  • Pro ověřování osobního přístupového tokenu Azure Databricks: host a token.
  • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): host, client_ida client_secret.
  • Pro ověřování uživatele AAuth (U2M) (kde je to podporováno): host
  • Pro ověřování hostinstančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): , azure_tenant_id, azure_client_idazure_client_secreta případně azure_workspace_resource_id.
  • Pro ověřování Azure CLI: host.
  • Ověřování spravovaných identit Azure (kde je podporováno): host, azure_use_msi, azure_client_id, a případně azure_workspace_resource_id.

Potom nastavte název tohoto konfiguračního profilu prostřednictvím Config třídy.

Můžete zadat cluster_id několika způsoby následujícím způsobem:

  • Do konfiguračního cluster_id profilu zahrňte pole a zadejte název konfiguračního profilu.
  • Zadejte název konfiguračního profilu spolu s polem cluster_id .

Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID prostředí s ID clusteru, nemusíte také zadávat cluster_id.

Kód pro každý z těchto přístupů je následující:

# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
   profile    = "<profile-name>",
   cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

Proměnná DATABRICKS_CONFIG_PROFILE prostředí

Pro tuto možnost vytvořte nebo identifikujte konfigurační profil Azure Databricks obsahující pole cluster_id a všechna další pole, která jsou nezbytná pro typ ověřování Databricks, který chcete použít.

Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID prostředí s ID clusteru, nemusíte také zadávat cluster_id.

Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:

  • Pro ověřování osobního přístupového tokenu Azure Databricks: host a token.
  • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): host, client_ida client_secret.
  • Pro ověřování uživatele AAuth (U2M) (kde je to podporováno): host
  • Pro ověřování hostinstančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): , azure_tenant_id, azure_client_idazure_client_secreta případně azure_workspace_resource_id.
  • Pro ověřování Azure CLI: host.
  • Ověřování spravovaných identit Azure (kde je podporováno): host, azure_use_msi, azure_client_id, a případně azure_workspace_resource_id.

Nastavte proměnnou DATABRICKS_CONFIG_PROFILE prostředí na název tohoto konfiguračního profilu. Pak inicializovat DatabricksSession třídu následujícím způsobem:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Proměnná prostředí pro každou vlastnost konfigurace

Pro tuto možnost nastavte proměnnou DATABRICKS_CLUSTER_ID prostředí a všechny další proměnné prostředí, které jsou nezbytné pro typ ověřování Databricks, který chcete použít.

Požadované proměnné prostředí pro každý typ ověřování jsou následující:

  • Pro ověřování osobního přístupového tokenu Azure Databricks: DATABRICKS_HOST a DATABRICKS_TOKEN.
  • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): DATABRICKS_HOST, DATABRICKS_CLIENT_IDa DATABRICKS_CLIENT_SECRET.
  • Pro ověřování uživatele AAuth (U2M) (kde je to podporováno): DATABRICKS_HOST
  • Pro ověřování DATABRICKS_HOSTinstančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): , ARM_TENANT_ID, ARM_CLIENT_IDARM_CLIENT_SECRETa případně DATABRICKS_AZURE_RESOURCE_ID.
  • Pro ověřování Azure CLI: DATABRICKS_HOST.
  • Ověřování spravovaných identit Azure (kde je podporováno): DATABRICKS_HOST, ARM_USE_MSI, ARM_CLIENT_ID, a případně DATABRICKS_AZURE_RESOURCE_ID.

Pak inicializovat DatabricksSession třídu následujícím způsobem:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Konfigurační profil Databricks s názvem DEFAULT

Pro tuto možnost vytvořte nebo identifikujte konfigurační profil Azure Databricks obsahující pole cluster_id a všechna další pole, která jsou nezbytná pro typ ověřování Databricks, který chcete použít.

Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID prostředí s ID clusteru, nemusíte také zadávat cluster_id.

Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:

  • Pro ověřování osobního přístupového tokenu Azure Databricks: host a token.
  • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): host, client_ida client_secret.
  • Pro ověřování uživatele AAuth (U2M) (kde je to podporováno): host
  • Pro ověřování hostinstančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): , azure_tenant_id, azure_client_idazure_client_secreta případně azure_workspace_resource_id.
  • Pro ověřování Azure CLI: host.
  • Ověřování spravovaných identit Azure (kde je podporováno): host, azure_use_msi, azure_client_id, a případně azure_workspace_resource_id.

Pojmenujte tento konfigurační profil DEFAULT.

Pak inicializovat DatabricksSession třídu následujícím způsobem:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Konfigurace připojení k bezserverovým výpočetním prostředkům

Důležité

Tato funkce je ve verzi Public Preview.

Databricks Connect podporuje připojení k výpočetním prostředkům bez serveru. Aby bylo možné tuto funkci použít, musí být splněny požadavky na připojení k bezserverové aplikaci. Viz Požadavky.

Důležité

Tato funkce má následující omezení:

Připojení k bezserverovým výpočetním prostředkům můžete nakonfigurovat jedním z následujících způsobů:

  • Nastavte místní proměnnou DATABRICKS_SERVERLESS_COMPUTE_ID prostředí na autohodnotu . Pokud je tato proměnná prostředí nastavená, Databricks Connect ignoruje cluster_id.

  • V místním konfiguračním profilu Databricks nastavte serverless_compute_id = autoa potom na tento profil odkazujte z kódu Pythonu pro Databricks Connect.

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...
    
  • Případně stačí aktualizovat kód Pythonu pro Databricks Connect následujícím způsobem:

    from databricks.connect import DatabricksSession as SparkSession
    
    spark = DatabricksSession.builder.serverless(True).getOrCreate()
    
    from databricks.connect import DatabricksSession as SparkSession
    
    spark DatabricksSession.builder.remote(serverless=True).getOrCreate()
    

Poznámka:

Výpočetní relace bez serveru vyprší po 10 minutách nečinnosti. Potom se musí vytvořit nová relace Sparku pro připojení k bezserverovým výpočetním prostředkům. To lze provést s spark = DatabricksSession.builder.serverless(True).getOrCreate().

Ověření připojení k Databricks

Pokud chcete ověřit vaše prostředí, výchozí přihlašovací údaje a připojení k výpočetním prostředkům, jsou správně nastavené pro Databricks Connect, spusťte databricks-connect test příkaz, který selže s nenulovým ukončovacím kódem a odpovídající chybovou zprávou, když zjistí případné nekompatibilitu v nastavení.

databricks-connect test

Prostředí v kódu Pythonu můžete také ověřit pomocí validateSession():

DatabricksSession.builder.validateSession(True).getOrCreate()