Verwalten von Python-Abhängigkeiten für Pipelines

Lakeflow Spark Declarative Pipelines unterstützt externe Abhängigkeiten in Ihren Pipelines. Databricks empfiehlt die Verwendung eines von zwei Mustern zum Installieren von Python-Paketen:

  1. Verwenden Sie die Umgebungseinstellungen , um der Pipelineumgebung Pakete für alle Quelldateien in einer Pipeline hinzuzufügen.
  2. Importieren Sie Module oder Bibliotheken aus Quellcode, der in Dateien des Arbeitsbereichs gespeichert ist. Siehe "Importieren von Python-Modulen aus Git-Ordnern oder Arbeitsbereichsdateien".

Pipelines, die klassische Rechenressourcen verwenden, unterstützen auch clusterbezogene Initialisierungsskripts. Serverless Lakeflow Spark Declarative Pipelines unterstützt keine Init-Skripts. In allen Fällen empfiehlt Databricks die Verwendung der Umgebungseinstellungen anstelle von init-Skripts, da externe Abhängigkeiten, insbesondere init-Skripts, das Risiko von Problemen mit Laufzeitupgrades erhöhen. Wenn Ihre Verarbeitung init-Skripts erfordert, automatisieren Sie das Testen Ihrer Pipeline, um Probleme frühzeitig zu erkennen, und Databricks empfiehlt, die Testhäufigkeit zu erhöhen.

Von Bedeutung

Da JVM-Bibliotheken in Pipelines nicht unterstützt werden , verwenden Sie kein init-Skript zum Installieren von JVM-Bibliotheken. Sie können jedoch andere Bibliothekstypen wie Python Bibliotheken mit einem Init-Skript installieren.

Python-Bibliotheken

Um externe Python-Bibliotheken anzugeben, bearbeiten Sie die Umgebung für Ihre Pipeline.

  1. Klicken Sie im Pipeline-Editor auf "Einstellungen".
  2. Wählen Sie unter Pipelineumgebungdas Bleistiftsymbol aus.Bearbeiten sie die Umgebung.
  3. Klicken Sie auf das Plussymbol.Abhängigkeit hinzufügen.
  4. Geben Sie den Namen der Abhängigkeit ein. Databricks empfiehlt, die Version der Bibliothek zu fixieren. Z. B., um eine Abhängigkeit von simplejson Version 3.19, Typ simplejson==3.19.* hinzuzufügen.

Sie können auch ein Python-Wheel-Paket aus einem Unity Catalog-Volume installieren, indem Sie dessen Pfad angeben, z. B. /Volumes/my_catalog/my_schema/my_ldp_volume/ldpfns-1.0-py3-none-any.whl.

Note

Pipelines unterstützen das manuelle Neustarten des Python-Prozesses mit dbutils.library.restartPython() nicht. Deklarieren Sie alle Python Abhängigkeiten über die Umgebungseinstellungen, anstatt sie zur Laufzeit zu installieren oder neu zu laden. Durch die Verwendung der Umgebungseinstellungen können Pipelines zwischengespeicherte Bibliotheken auch übergreifend wiederverwenden, anstatt sie bei jeder Ausführung neu zu installieren.

Umgebungsversion

Standardmäßig stammen die Python Sprachversion und die vorinstallierte Bibliothek, die für Ihre Pipeline verfügbar ist, aus der aktuellen Version des Databricks-Runtime-Kanals. Informationen zu den aktuellen Versionen und den Paketlisten pro Runtime finden Sie in den Versionshinweisen zu Lakeflow Spark Declarative Pipelines und im Prozess für Versionsupgrades.

Von Bedeutung

Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.

Um die Python-Sprachversion und den Satz vorinstallierter Bibliotheken unabhängig von Upgrades der Databricks Runtime festzulegen, konfigurieren Sie für die Pipeline eine Umgebungsversion. Solange eine Umgebungsversion festgelegt ist, ändern Upgrades von Databricks Runtime weder Ihre Python-Sprachversion noch die Versionen der vorinstallierten Bibliotheken, und alle externen Abhängigkeiten, die Sie über die Einstellungen für Environment hinzufügen, werden auf dieser Basis aufgesetzt. Siehe Konfigurieren von Umgebungsversionen für Pipelines.

Scala- und Java-Bibliotheksunterstützung

Nein, Pipelines unterstützen nur SQL und Python. Sie können JVM-Bibliotheken nicht in einer Pipeline verwenden. Die Installation von JVM-Bibliotheken kann zu unvorhersehbarem Verhalten führen und in zukünftigen Versionen von Lakeflow Spark Declarative Pipelines nicht mehr funktionieren. Wenn Ihre Pipeline ein Init-Skript verwendet, müssen Sie auch sicherstellen, dass JVM-Bibliotheken nicht vom Skript installiert werden.