Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Dieser Artikel behandelt Databricks Connect für Databricks Runtime Version 13.3 LTS und höher.
Dieser Artikel enthält Informationen zur Problembehandlung für Databricks Connect für Python. Databricks Connect ermöglicht es Ihnen, beliebte IDEs, Notizbuchserver und benutzerdefinierte Anwendungen mit Azure Databricks Clustern zu verbinden. Weitere Informationen finden Sie unter Databricks Connect. Die Scala-Version dieses Artikels finden Sie unter Problembehandlung für Databricks Connect für Scala.
Fehler: StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, Fehler bei DNS-Auflösung oder „Received http2 header with status 500“ (HTTP2-Header mit Status 500 empfangen)
Problem: Wenn Sie versuchen, Code mit Databricks Connect auszuführen, erhalten Sie eine Fehlermeldung, die Zeichenfolgen wie StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failed oder Received http2 header with status: 500 enthält.
Mögliche Ursache: Databricks Connect kann Ihren Cluster nicht erreichen.
Empfohlene Lösungen:
- Überprüfen Sie, ob der Name Ihrer Arbeitsbereichsinstanz korrekt ist. Wenn Sie Umgebungsvariablen verwenden, überprüfen Sie, ob die zugehörige Umgebungsvariable auf Ihrem lokalen Entwicklungscomputer verfügbar und korrekt ist.
- Überprüfen Sie, ob die Cluster-ID korrekt ist. Wenn Sie Umgebungsvariablen verwenden, überprüfen Sie, ob die zugehörige Umgebungsvariable auf Ihrem lokalen Entwicklungscomputer verfügbar und korrekt ist.
- Überprüfen Sie, ob Ihr Cluster über die richtige benutzerdefinierte Clusterversion verfügt, die mit Databricks Connect kompatibel ist.
Python Versionskonflikt
Überprüfen Sie, dass die Python-Version, die Sie lokal verwenden, mindestens dieselbe Minor-Version wie die Version auf dem Cluster hat (z. B. 3.10.11 zum Vergleich 3.10.10 ist OK, 3.10 zum Vergleich 3.9 ist nicht). Unterstützte Versionen finden Sie in der Versionsunterstützungsmatrix.
Wenn mehrere Python Versionen lokal installiert sind, stellen Sie sicher, dass Databricks Connect die richtige verwendet, indem Sie die Umgebungsvariable PYSPARK_PYTHON festlegen (z. B. PYSPARK_PYTHON=python3).
Widersprüchliche PySpark-Installationen
Das databricks-connect-Paket steht im Konflikt mit PySpark. Wenn beide installiert wurden, treten beim Initialisieren des Spark-Kontexts in Python Fehler auf. Dies kann sich auf verschiedene Weise manifestieren, z. B. durch Fehlermeldungen wie „stream corrupted“ (Datenstrom beschädigt) oder „class not found“ (Klasse nicht gefunden). Wenn Sie pyspark in Ihrer Python Umgebung installiert haben, stellen Sie sicher, dass sie deinstalliert wird, bevor Sie databricks-connect installieren. Stellen Sie nach der Deinstallation von PySpark sicher, dass das Databricks Connect-Paket vollständig neu installiert wird:
pip3 uninstall pyspark
pip3 uninstall databricks-connect
pip3 install --upgrade "databricks-connect==14.0.*" # or X.Y.* to match your specific cluster version.
Databricks Connect und PySpark schließen sich gegenseitig aus, aber es ist möglich, Python virtuellen Umgebungen zur Remoteentwicklung mit databricks-connect in Ihrer IDE und lokalen Tests mit pyspark in einem Terminal zu verwenden. Databricks empfiehlt jedoch, Databricks Connect für Python mit serverless compute für alle Tests zu verwenden, aus folgenden Gründen:
- Databricks Runtime und daher auch
databricks-connectenthält Funktionen, die in der OSSpysparknicht verfügbar sind. - Das Testen mit
databricks-connectund Serverless ist schneller als das lokale Testen mitpyspark. - Unity Catalog-Integrationen sind in
pysparknicht verfügbar, daher werden beim Testen mitpysparklokal keine Berechtigungen durchgesetzt. - Zum Testen von End-to-End mit einer externen Abhängigkeit wie Databricks Compute sind Integrationstests im Gegensatz zu Komponententests am besten geeignet.
Wenn Sie weiterhin eine Verbindung mit einem lokalen Spark-Cluster herstellen möchten, können Sie eine connection string wie folgt angeben:
connection_string = "sc://localhost"
DatabricksSession.builder.remote(connection_string).getOrCreate()
Widersprüchlicher oder fehlender PATH-Eintrag für Binärdateien
Es ist möglich, dass Ihr PATH so konfiguriert ist, dass Befehle wie spark-shell eine andere zuvor installierte Binärdatei anstelle der mit Databricks Connect bereitgestellten Binärdatei ausführen. Sie sollten entweder dafür sorgen, dass die Databricks Connect-Binärdateien Vorrang haben, oder die zuvor installierten Binärdateien entfernen.
Wenn Sie keine Befehle wie spark-shell ausführen können, ist es möglicherweise auch so, dass Ihr PATH nicht automatisch von pip3 install gesetzt wurde, und Sie müssen das Installationsverzeichnis bin manuell zu Ihrem PATH hinzufügen. Es ist möglich, Databricks Connect mit IDEs zu verwenden, auch wenn dies nicht eingerichtet ist.
Die Syntax von Dateinamen, Verzeichnisnamen oder Volumebezeichnungen ist unter Windows falsch.
Wenn Sie Databricks Connect auf Windows verwenden und Folgendes sehen:
The filename, directory name, or volume label syntax is incorrect.
Databricks Connect wurde in einem Verzeichnis installiert, das ein Leerzeichen in Ihrem Pfad enthält. Sie können dieses Problem vermeiden, indem Sie die Installation in einem Verzeichnispfad ohne Leerzeichen vornehmen oder indem Sie den Pfad im Kurznamenformat konfigurieren.