Verwalten von Python-Abhängigkeiten für Delta Live Tables-Pipelines

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

  1. Verwenden Sie den Befehl %pip install, um Pakete für alle Quelldateien in einer Pipeline zu installieren.
  2. Importieren Sie Module oder Bibliotheken aus dem Quellcode, der in Arbeitsbereichsdateien gespeichert ist. Siehe Importieren von Python-Modulen aus Git-Ordnern oder Arbeitsbereichsdateien.

Delta Live Tables unterstützt auch die Verwendung von globalen und clusterbezogenen init-Skripts. Diese externen Abhängigkeiten, insbesondere init-Skripts, erhöhen jedoch das Risiko von Problemen mit Runtimeupgrades. Um diese Risiken zu mindern, minimieren Sie die Verwendung von init-Skripts in Ihren Pipelines. Wenn Ihre Verarbeitung Initskripts erfordert, automatisieren Sie das Testen Ihrer Pipeline, um Probleme frühzeitig zu erkennen. Wenn Sie init-Skripts verwenden, empfiehlt Databricks, ihre Testhäufigkeit zu erhöhen.

Wichtig

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

Python-Bibliotheken

Verwenden Sie den Magic-Befehl %pip install, um externe Python-Bibliotheken anzugeben. Wenn ein Update gestartet wird, führt Delta Live Tables alle Zellen aus, die einen %pip install-Befehl enthalten, bevor Tabellendefinitionen ausgeführt werden. Jedes in der Pipeline enthaltene Python-Notebook teilt eine Bibliotheksumgebung und hat Zugriff auf alle installierten Bibliotheken.

Wichtig

  • %pip install-Befehle müssen sich in einer separaten Zelle oben im Pipeline-Notebook „Delta Live Tables“ befinden. Fügen Sie keinen anderen Code in Zellen mit %pip install-Befehlen ein.
  • Da jedes Notebook in einer Pipeline eine Bibliotheksumgebung teilt, können Sie nicht unterschiedliche Bibliotheksversionen in einer einzelnen Pipeline definieren. Wenn Ihre Verarbeitung unterschiedliche Bibliotheksversionen erfordert, müssen Sie diese in verschiedenen Pipelines definieren.

Im folgenden Beispiel wird die Bibliothek numpy installiert und für jedes Python-Notebook in der Pipeline global verfügbar gemacht:

%pip install simplejson

Fügen Sie zum Installieren eines Python-Wheel-Pakets den Python-Wheel-Pfad zum %pip install-Befehl hinzu. Installierte Python-Wheel-Pakete sind für alle Tabellen in der Pipeline verfügbar. Im folgenden Beispiel wird eine Python-Wheel-Datei mit dem Namen dltfns-1.0-py3-none-any.whl aus dem DBFS-Verzeichnis /dbfs/dlt/ installiert:

%pip install /dbfs/dlt/dltfns-1.0-py3-none-any.whl

Weitere Informationen finden Sie unter Installieren eines Python-Wheel-Pakets mit %pip.

Kann ich Scala- oder Java-Bibliotheken in einer Delta Live Tables-Pipeline verwenden?

Nein, Delta Live Tables unterstützt nur SQL und Python. Sie können JVM-Bibliotheken nicht in einer Pipeline verwenden. Die Installation von JVM-Bibliotheken führt zu unvorhersehbarem Verhalten und kann bei zukünftigen Versionen von Delta Live Tables zu Problemen führen. Wenn Ihre Pipeline ein Initialisierungsskript verwendet, müssen Sie außerdem sicherstellen, dass JVM-Bibliotheken nicht vom Skript installiert werden.