Freigeben über


Lernprogramm: Ausführen von Python-Code auf serverlosem Compute

Hinweis

Dieser Artikel bezieht sich auf Databricks Connect 15.4 LTS und höher.

In diesem Artikel wird beschrieben, wie Sie ein Projekt in Ihrer IDE erstellen, Ihre virtuelle Umgebung einrichten, Databricks Connect für Python installieren und Code auf serverlosen Berechnungen in Ihrem Databricks-Arbeitsbereich ausführen.

Dieses Lernprogramm verwendet Python 3.12 und Databricks Connect 16.4 LTS. Um andere Versionen von Python von Databricks Connect zu verwenden, müssen sie kompatibel sein. Siehe die Versionsunterstützungsmatrix.

Anforderungen

Um dieses Lernprogramm abzuschließen, müssen die folgenden Anforderungen erfüllt sein:

Schritt 1: Konfigurieren der Databricks-Authentifizierung

Dieses Lernprogramm verwendet die Databricks OAuth-Benutzer-zu-Computer-Authentifizierung (U2M)-Authentifizierung und ein Databricks-Konfigurationsprofil für die Authentifizierung für Ihren Databricks-Arbeitsbereich.

  1. Verwenden Sie die Databricks CLI, um die OAuth-Tokenverwaltung lokal zu initiieren, indem Sie den folgenden Befehl für jeden Zielarbeitsbereich ausführen. Ersetzen Sie <workspace-url> im folgenden Befehl die URL der Databricks-Arbeitsbereichsinstanz, z https://dbc-a1b2345c-d6e7.cloud.databricks.com. B. .

    databricks auth login --host <workspace-url>
    
  2. Die Databricks CLI fordert Sie auf, die Von Ihnen als Databricks-Konfigurationsprofil eingegebenen Informationen zu speichern. Drücken Sie Enter, um den vorgeschlagenen Profilnamen zu übernehmen, oder geben Sie den Namen eines neuen oder bereits vorhandenen Profils ein. Databricks empfiehlt die Verwendung DEFAULT als Profilnamen.

  3. Füllen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Databricks-Arbeitsbereich anzumelden.

Schritt 2: Erstellen einer neuen virtuellen Python-Umgebung

  1. Erstellen Sie Ihren Projektordner, und öffnen Sie ihn in Ihrer IDE. Klicken Sie beispielsweise im Visual Studio Code-Hauptmenü auf ">Ordner öffnen">

  2. Öffnen Sie ein Terminalfenster im Projektordnerstamm. Klicken Sie beispielsweise im Visual Studio Code-Hauptmenü auf "Terminal anzeigen>".

  3. Erstellen Sie eine virtuelle Umgebung für das Projekt, das im Stammverzeichnis des Projektordners aufgerufen wird venv , indem Sie den folgenden Befehl im Terminal ausführen:

    python3.12 -m venv .venv
    
  4. Aktivieren Sie Ihre virtuelle Umgebung:

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

Schritt 3: Installieren von Databricks Connect

Installieren Sie Databricks Connect. Informationen zur neuesten veröffentlichten Version von Databricks Connect 16.4 finden Sie unter Databricks Connect für Databricks Runtime 16.4.

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

Schritt 4: Hinzufügen von Code und Ausführen

  1. Hinzufügen einer neuen Python-Datei main.py zu Ihrem Projekt

  2. Geben Sie den folgenden Code in die Datei ein, und ersetzen Sie den Platzhalter <profile-name> durch den Namen Ihres Konfigurationsprofils aus Schritt 1, und speichern Sie dann die Datei. Der Standardkonfigurationsprofilname lautet 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. Führen Sie den Code mit dem folgenden Befehl aus:

    python3 main.py
    

    Es werden fünf Zeilen der Tabelle zurückgegeben:

    +--------------------+---------------------+-------------+-----------+---------+-----------+
    |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|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    

Sie haben Ihre erste Abfrage erfolgreich auf Databricks serverless compute mithilfe von Databricks Connect aus Ihrer IDE ausgeführt.

Schritt 5: Vorbereiten des Codes

Für Produktionsszenarien ist es wichtig, die Verwendung von Computespezifikationen im Spark-Sitzungs-Generator zu vermeiden. Wenn Sie ihren Code beispielsweise in einem klassischen Cluster bereitstellen: Standard oder Dedicated die .serverless() API im Spark-Sitzungs-Generator verwenden, wird eine neue serverlose Spark-Sitzung mit dem klassischen Cluster als Client erstellt.

Damit Ihr Code flexibel und für die Produktion bereit ist, sollte die Spark-Sitzung keine Parameter enthalten.

spark = DatabricksSession.builder.getOrCreate()

Wenn dieser Code jedoch auf Databricks ausgeführt wird, wird die standardmäßige globale Spark-Sitzung der Databricks-Berechnung verwendet.

Um die serverlose Berechnung in Ihrer IDE zu aktivieren, verwenden Sie das STANDARDkonfigurationsprofil, das ausgewählt wird, wenn DatabricksSession.builder keine Parameter angegeben werden:

  1. Erstellen Sie ein Konfigurationsprofil DEFAULT mit den Anweisungen aus Schritt 1.

  2. Verwenden Sie einen Text-Editor, um die .databrickscfg Datei zu öffnen, die in:

    • Ihr $HOME Benutzer-Startordner unter Unix, Linux oder macOS: ~/.databrickscfgoder

    • Ihr (Benutzerstart %USERPROFILE% )-Ordner unter Windows. Beispiel: für macOS:

      nano ~/.databrickscfg
      
  3. serverless_compute_id = auto Zum Profil hinzufügenDEFAULT:

    [DEFAULT]
    host                  = https://my-workspace.cloud.databricks.com
    auth_type             = databricks-cli
    serverless_compute_id = auto
    
  4. Speichern Sie die Änderungen, und beenden Sie den Editor.

  5. Ändern Sie Ihren Code so, dass eine allgemeine Spark-Sitzung verwendet wird, und führen Sie ihn aus:

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

Sie haben Ihren produktionsbereiten Code erfolgreich auf Databricks serverless compute mithilfe von Databricks Connect aus Ihrer IDE mithilfe des DEFAULT-Konfigurationsprofils ausgeführt.

Tipp

Sie können auch Umgebungsvariablen verwenden, um die Verbindung mit einer bestimmten Databricks-Berechnung festzulegen:

  • Serverlos: DATABRICKS_SERVERLESS_COMPUTE_ID=auto
  • Klassisch: DATABRICKS_CLUSTER_ID=<your_cluster_id>