Udostępnij przez


Samouczek: uruchamianie kodu w języku Python na bezserwerowych obliczeniach

Uwaga / Notatka

Ten artykuł dotyczy programu Databricks Connect 15.4 LTS i nowszych wersji.

W tym artykule opisano sposób tworzenia projektu w środowisku IDE, konfigurowania środowiska wirtualnego, instalowania programu Databricks Connect dla języka Python i uruchamiania kodu na bezserwerowych obliczeniach w obszarze roboczym usługi Databricks.

W tym samouczku używane są języki Python 3.12 i Databricks Connect 16.4 LTS. Aby korzystać z innych wersji języka Python usługi Databricks Connect, muszą być one zgodne. Zobacz macierz obsługi wersji.

Wymagania

Aby ukończyć ten samouczek, należy spełnić następujące wymagania:

Krok 1. Konfigurowanie uwierzytelniania usługi Databricks

W tym samouczku używane jest uwierzytelnianie użytkownika do komputera usługi Databricks OAuth (U2M) i profil konfiguracji usługi Databricks do uwierzytelniania w obszarze roboczym usługi Databricks.

  1. Użyj Databricks CLI, aby lokalnie zainicjować zarządzanie tokenami OAuth, uruchamiając następujące polecenie dla każdego docelowego obszaru roboczego. W poniższym poleceniu zastąp <workspace-url> ciąg adresem URL wystąpienia obszaru roboczego usługi Databricks, na przykład https://dbc-a1b2345c-d6e7.cloud.databricks.com.

    databricks auth login --host <workspace-url>
    
  2. Interfejs wiersza polecenia usługi Databricks monituje o zapisanie informacji wprowadzonych jako profil konfiguracji usługi Databricks. Naciśnij Enter , aby zaakceptować sugerowaną nazwę profilu lub wprowadź nazwę nowego lub istniejącego profilu. Usługa Databricks zaleca używanie jako DEFAULT nazwy profilu.

  3. W przeglądarce internetowej wykonaj instrukcje na ekranie, aby zalogować się do obszaru roboczego usługi Databricks.

Krok 2. Tworzenie nowego środowiska wirtualnego języka Python

  1. Utwórz folder projektu i otwórz go w środowisku IDE. Na przykład w menu głównym programu Visual Studio Code kliknij pozycję Otwórz plik>Otwórz folder>.

  2. Otwórz okno terminalu w folderze głównym folderu projektu. Na przykład w menu głównym programu Visual Studio Code kliknij pozycję Wyświetl>terminal.

  3. Utwórz środowisko wirtualne dla projektu o nazwie venv w katalogu głównym folderu projektu, uruchamiając następujące polecenie w terminalu:

    python3.12 -m venv .venv
    
  4. Aktywowanie środowiska wirtualnego:

    # Linux/Mac
    source .venv/bin/activate
    
    # Windows
    .venv\Scripts\activate
    

Krok 3. Instalowanie programu Databricks Connect

Zainstaluj program Databricks Connect. Aby uzyskać informacje o najnowszej wydanej wersji programu Databricks Connect 16.4, zobacz Databricks Connect for Databricks Runtime 16.4.

pip install "databricks-connect==16.4.*"

Krok 4. Dodawanie kodu i uruchamianie

  1. Dodawanie nowego pliku main.py języka Python do projektu

  2. Wprowadź następujący kod w pliku, zastępując symbol zastępczy <profile-name> nazwą profilu konfiguracji z kroku 1, a następnie zapisz plik. Domyślna nazwa profilu konfiguracji to DEFAULT.

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
  3. Uruchom kod przy użyciu następującego polecenia:

    python3 main.py
    

    Zwracane są pięć wierszy tabeli:

    +--------------------+---------------------+-------------+-----------+---------+-----------+
    |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    | 2016-02-16 22:40:45|  2016-02-16 22:59:25|         5.35|       18.5|     10003|      11238|
    | 2016-02-05 16:06:44|  2016-02-05 16:26:03|          6.5|       21.5|     10282|      10001|
    | 2016-02-08 07:39:25|  2016-02-08 07:44:14|          0.9|        5.5|     10119|      10003|
    | 2016-02-29 22:25:33|  2016-02-29 22:38:09|          3.5|       13.5|     10001|      11222|
    | 2016-02-03 17:21:02|  2016-02-03 17:23:24|          0.3|        3.5|     10028|      10028|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    

Pomyślnie uruchomiono pierwsze zapytanie dotyczące bezserwerowych obliczeń usługi Databricks przy użyciu usługi Databricks Connect ze środowiska IDE.

Krok 5. Przygotowanie kodu do produkcji

W przypadku scenariuszy produkcyjnych należy unikać używania specyfikacji obliczeniowych w konstruktorze sesji platformy Spark. Jeśli na przykład wdrożysz kod w klastrze klasycznym: Standard lub Dedicated przy użyciu interfejsu .serverless() API w konstruktorze sesji platformy Spark, zostanie utworzona nowa bezserwerowa sesja platformy Spark przy użyciu klasycznego klastra jako klienta.

Aby kod był elastyczny i gotowy do produkcji, sesja platformy Spark nie powinna zawierać żadnych parametrów.

spark = DatabricksSession.builder.getOrCreate()

Jednak po uruchomieniu tego kodu w usłudze Databricks jest używana domyślna globalna sesja platformy Spark obliczeń usługi Databricks.

Aby włączyć przetwarzanie bezserwerowe w środowisku IDE, użyj domyślnego DatabricksSession.builder profilu konfiguracji, który jest wybierany w przypadku, gdy nie określono parametrów:

  1. Utwórz profil konfiguracji o nazwie DEFAULT przy użyciu instrukcji z kroku 1.

  2. Użyj edytora .databrickscfg tekstów, aby otworzyć plik, który znajduje się w:

    • Folder $HOME główny użytkownika w systemach Unix, Linux lub macOS: ~/.databrickscfglub

    • Folder %USERPROFILE% (strona główna użytkownika) w systemie Windows. Na przykład dla systemu macOS:

      nano ~/.databrickscfg
      
  3. Dodaj serverless_compute_id = auto do DEFAULT profilu:

    [DEFAULT]
    host                  = https://my-workspace.cloud.databricks.com
    auth_type             = databricks-cli
    serverless_compute_id = auto
    
  4. Zapisz zmiany i zamknij edytor.

  5. Zmodyfikuj kod, aby używał ogólnej sesji platformy Spark i uruchom go:

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

Kod gotowy do środowiska produkcyjnego został pomyślnie uruchomiony na bezserwerowych obliczeniach usługi Databricks przy użyciu programu Databricks Connect ze środowiska IDE przy użyciu profilu konfiguracji DEFAULT.

Wskazówka

Możesz również użyć zmiennych środowiskowych, aby ustawić połączenie z określonym środowiskiem obliczeniowym usługi Databricks:

  • Bezserwerowe: DATABRICKS_SERVERLESS_COMPUTE_ID=auto
  • Klasyczny: DATABRICKS_CLUSTER_ID=<your_cluster_id>