Udostępnij za pośrednictwem


Instalowanie programu Databricks Connect dla języka Python

Uwaga

W tym artykule opisano usługę Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego.

W tym artykule opisano sposób instalowania programu Databricks Connect dla języka Python. Zobacz Co to jest usługa Databricks Connect?. Aby zapoznać się z wersją tego artykułu, zobacz Install Databricks Connect for Scala (Instalowanie programu Databricks Connect dla języka Scala).

Wymagania

Aby zainstalować program Databricks Connect dla języka Python, należy spełnić następujące wymagania:

  • Jeśli łączysz się z bezserwerowym obliczeniami, obszar roboczy musi spełniać wymagania dotyczące przetwarzania bezserwerowego.

    Uwaga

    Przetwarzanie bezserwerowe jest obsługiwane w programie Databricks Connect w wersji 15.1 lub nowszej. Ponadto wersje programu Databricks Connect w wersji databricks Runtime lub niższej niż wersja środowiska Databricks Runtime w wersji bezserwerowej są w pełni zgodne. Zobacz Informacje o wersji. Aby sprawdzić, czy wersja programu Databricks Connect jest zgodna z obliczeniami bezserwerowymi, zobacz Weryfikowanie połączenia z usługą Databricks.

  • Jeśli łączysz się z klastrem, klaster docelowy musi spełniać wymagania dotyczące konfiguracji klastra, które obejmują wymagania dotyczące wersji środowiska Databricks Runtime.

  • Na komputerze deweloperskim musi być zainstalowany język Python 3, a wersja pomocnicza języka Python zainstalowana na komputerze deweloperskim musi spełniać wymagania dotyczące wersji w poniższej tabeli.

    Typ środowiska obliczeniowego Wersja programu Databricks Connect Zgodna wersja języka Python
    Praca bezserwerowa 15.1 i nowsze 3.11
    Klaster 15.1 i nowsze 3.11
    Klaster 13.3 LTS do 14.3 LTS 3,10
  • Jeśli chcesz używać funkcji zdefiniowanych przez użytkownika PySpark, zainstalowana wersja pomocnicza języka Python na maszynie deweloperskiej musi być zgodna z wersją pomocniczą języka Python dołączoną do środowiska Databricks Runtime zainstalowanego w klastrze lub bezserwerowym środowisku obliczeniowym. Aby znaleźć pomocniczą wersję klastra w języku Python, zapoznaj się z sekcją Środowisko systemowe informacji o wersji środowiska Databricks Runtime dla klastra lub bezserwerowego środowiska obliczeniowego. Zobacz Informacje o wersji środowiska Databricks Runtime i informacje o zgodności oraz informacje o wersji obliczeniowej bezserwerowej.

Aktywowanie środowiska wirtualnego języka Python

Usługa Databricks zdecydowanie zaleca aktywowanie środowiska wirtualnego języka Python dla każdej wersji języka Python używanej z usługą Databricks Connect. Środowiska wirtualne języka Python pomagają upewnić się, że używasz poprawnych wersji języka Python i usługi Databricks Connect razem. Aby uzyskać więcej informacji na temat tych narzędzi i sposobu ich aktywowania, zobacz venv lub Poezja.

Instalowanie klienta usługi Databricks Connect

W tej sekcji opisano sposób instalowania klienta programu Databricks Connect za pomocą oprogramowania venv lub poezji.

Uwaga

Jeśli masz już zainstalowane rozszerzenie Databricks dla programu Visual Studio Code, nie musisz wykonywać tych instrukcji konfiguracji, ponieważ rozszerzenie usługi Databricks dla programu Visual Studio Code ma już wbudowaną obsługę programu Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego. Przejdź do sekcji Debugowanie kodu przy użyciu usługi Databricks Connect dla rozszerzenia usługi Databricks dla programu Visual Studio Code.

Instalowanie klienta usługi Databricks Connect za pomocą programu venv

  1. Po aktywowaniu środowiska wirtualnego odinstaluj narzędzie PySpark, jeśli jest już zainstalowane, uruchamiając uninstall polecenie . Jest to wymagane, ponieważ databricks-connect pakiet powoduje konflikt z narzędziem PySpark. Aby uzyskać szczegółowe informacje, zobacz Konflikt instalacji PySpark. Aby sprawdzić, czy program PySpark jest już zainstalowany, uruchom show polecenie .

    # Is PySpark already installed?
    pip3 show pyspark
    
    # Uninstall PySpark
    pip3 uninstall pyspark
    
  2. Po aktywowaniu środowiska wirtualnego zainstaluj klienta programu Databricks Connect, uruchamiając install polecenie . --upgrade Użyj opcji , aby uaktualnić dowolną istniejącą instalację klienta do określonej wersji.

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

    Uwaga

    Usługa Databricks zaleca dołączenie notacji "kropka-gwiazdka", aby określić databricks-connect==X.Y.* zamiast databricks-connect=X.Y, aby upewnić się, że zainstalowano najnowszy pakiet. Chociaż nie jest to wymagane, pomaga upewnić się, że możesz używać najnowszych obsługiwanych funkcji dla tego klastra.

Przejdź do sekcji Konfigurowanie właściwości połączenia.

Instalowanie klienta usługi Databricks Connect za pomocą poezji

  1. Po aktywowaniu środowiska wirtualnego odinstaluj narzędzie PySpark, jeśli jest już zainstalowane, uruchamiając remove polecenie . Jest to wymagane, ponieważ databricks-connect pakiet powoduje konflikt z narzędziem PySpark. Aby uzyskać szczegółowe informacje, zobacz Konflikt instalacji PySpark. Aby sprawdzić, czy program PySpark jest już zainstalowany, uruchom show polecenie .

    # Is PySpark already installed?
    poetry show pyspark
    
    # Uninstall PySpark
    poetry remove pyspark
    
  2. Po aktywowaniu środowiska wirtualnego zainstaluj klienta programu Databricks Connect, uruchamiając add polecenie .

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

    Uwaga

    Usługa Databricks zaleca użycie notacji "at-tilde", aby określić databricks-connect@~15.4 zamiast databricks-connect==15.4, aby upewnić się, że najnowszy pakiet jest zainstalowany. Chociaż nie jest to wymagane, pomaga upewnić się, że możesz używać najnowszych obsługiwanych funkcji dla tego klastra.

Konfigurowanie właściwości połączenia

W tej sekcji skonfigurujesz właściwości w celu nawiązania połączenia między usługą Databricks Connect i klastrem usługi Azure Databricks lub bezserwerowym środowiskiem obliczeniowym, który obejmuje następujące elementy:

Uwaga

Konfigurowanie połączenia z klastrem

Aby skonfigurować połączenie z klastrem, potrzebny będzie identyfikator klastra. Identyfikator klastra można uzyskać z adresu URL. Zobacz Adres URL i identyfikator klastra.

Połączenie z klastrem można skonfigurować w jeden z następujących sposobów. Usługa Databricks Connect wyszukuje właściwości konfiguracji w następującej kolejności i używa pierwszej znalezionej konfiguracji. Aby uzyskać zaawansowane informacje o konfiguracji, zobacz Advanced usage of Databricks Connect for Python (Zaawansowane użycie programu Databricks Connect dla języka Python).

  1. Metoda remote() klasy DatabricksSession.
  2. Profil konfiguracji usługi Databricks
  3. Zmienna środowiskowa DATABRICKS_CONFIG_PROFILE
  4. Zmienna środowiskowa dla każdej właściwości konfiguracji
  5. Profil konfiguracji usługi Databricks o nazwie DEFAULT

DatabricksSession Metoda klasy remote()

W przypadku tej opcji, która ma zastosowanie tylko do uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks, określ nazwę wystąpienia obszaru roboczego, osobisty token dostępu usługi Azure Databricks oraz identyfikator klastra.

Klasę DatabricksSession można zainicjować na kilka sposobów w następujący sposób:

  • hostUstaw pola , tokeni cluster_id w pliku DatabricksSession.builder.remote().
  • Użyj klasy zestawu SDK Config usługi Databricks.
  • Określ profil konfiguracji usługi Databricks wraz z polem cluster_id .
  • Ustaw parametry połączenia Spark Connect w pliku DatabricksSession.builder.remote().

Zamiast określać te właściwości połączenia w kodzie, usługa Databricks zaleca konfigurowanie właściwości za pomocą zmiennych środowiskowych lub plików konfiguracji, zgodnie z opisem w tej sekcji. W poniższych przykładach kodu założono, że udostępniasz implementację proponowanych retrieve_* funkcji, aby uzyskać niezbędne właściwości od użytkownika lub z innego magazynu konfiguracji, takiego jak Azure KeyVault.

Kod dla każdego z tych podejść jest następujący:

# 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()

Profil konfiguracji usługi Databricks

W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole cluster_id i inne pola, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.

Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:

Następnie ustaw nazwę tego profilu konfiguracji za pomocą Config klasy .

Możesz określić cluster_id na kilka sposobów w następujący sposób:

  • Uwzględnij cluster_id pole w profilu konfiguracji, a następnie po prostu określ nazwę profilu konfiguracji.
  • Określ nazwę profilu konfiguracji wraz z polem cluster_id .

Jeśli zmienna DATABRICKS_CLUSTER_ID środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennej cluster_id.

Kod dla każdego z tych podejść jest następujący:

# 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()

Zmienna DATABRICKS_CONFIG_PROFILE środowiskowa

W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole cluster_id i inne pola, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.

Jeśli zmienna DATABRICKS_CLUSTER_ID środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennej cluster_id.

Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:

Ustaw zmienną DATABRICKS_CONFIG_PROFILE środowiskową na nazwę tego profilu konfiguracji. Następnie zainicjuj klasę DatabricksSession w następujący sposób:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Zmienna środowiskowa dla każdej właściwości konfiguracji

Dla tej opcji ustaw zmienną DATABRICKS_CLUSTER_ID środowiskową i wszelkie inne zmienne środowiskowe, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.

Wymagane zmienne środowiskowe dla każdego typu uwierzytelniania są następujące:

Następnie zainicjuj klasę DatabricksSession w następujący sposób:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Profil konfiguracji usługi Databricks o nazwie DEFAULT

W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole cluster_id i inne pola, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.

Jeśli zmienna DATABRICKS_CLUSTER_ID środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennej cluster_id.

Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:

Nadaj nazwę temu profilowi DEFAULTkonfiguracji .

Następnie zainicjuj klasę DatabricksSession w następujący sposób:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Konfigurowanie połączenia z obliczeniami bezserwerowym

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Usługa Databricks Connect obsługuje nawiązywanie połączenia z obliczeniami bezserwerowymi. Aby korzystać z tej funkcji, należy spełnić wymagania dotyczące nawiązywania połączenia z bezserwerową. Zobacz Wymagania.

Ważne

Ta funkcja ma następujące ograniczenia:

Połączenie z obliczeniami bezserwerowym można skonfigurować na jeden z następujących sposobów:

  • Ustaw lokalną zmienną środowiskową DATABRICKS_SERVERLESS_COMPUTE_ID na auto. Jeśli ta zmienna środowiskowa jest ustawiona, program Databricks Connect ignoruje wartość cluster_id.

  • W lokalnym profilu konfiguracji usługi Databricks ustaw pozycję serverless_compute_id = auto, a następnie odwołaj się do tego profilu z kodu języka Python usługi Databricks Connect.

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...
    
  • Możesz też zaktualizować kod języka Python usługi Databricks Connect w następujący sposób:

    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()
    

Uwaga

Limit czasu sesji obliczeniowej bezserwerowej po upływie 10 minut braku aktywności. Następnie należy utworzyć nową sesję platformy Spark w celu nawiązania połączenia z bezserwerowym obliczeniami. Można to zrobić za pomocą polecenia spark = DatabricksSession.builder.serverless(True).getOrCreate().

Weryfikowanie połączenia z usługą Databricks

Aby zweryfikować środowisko, poświadczenia domyślne i połączenie z obliczeniami są poprawnie skonfigurowane dla usługi Databricks Connect, uruchom databricks-connect test polecenie, które kończy się niepowodzeniem z kodem zakończenia bez zera i odpowiednim komunikatem o błędzie, gdy wykryje niezgodność w instalacji.

databricks-connect test

Możesz również zweryfikować środowisko w kodzie języka Python przy użyciu polecenia validateSession():

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