Problembehandlung bei Databricks Connect für Scala

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 Scala. 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 Python Version dieses Artikels finden Sie unter Troubleshooting Databricks Connect für Python.

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.

Ursache: Databricks Connect kann Ihren Cluster nicht erreichen.

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.

Fehler beim Herstellen einer Verbindung mit dem Apache Spark-Server

Problem:

Der Versuch, eine Verbindung mit einem Open Source Apache Spark-Server herzustellen (z. B. ein lokal ausgeführter Apache Spark 3.5.x Spark Connect-Server bei sc://localhost), führt zu Fehlern wie z. B. nicht gefundener Klasse, API-Verhaltenskonflikten oder Serialisierungsfehlern.

Ursache:

Databricks Connect basiert auf Databricks Runtime, die unterschiedliche Abhängigkeiten aufweist als Open Source Apache Spark. Insbesondere sind Databricks Connect 15.4 und 16.4 nicht mit Apache Spark 3.5.x kompatibel, da sie eine andere Version der json4s Bibliothek verwenden.

Lösung:

Verwenden Sie einen Databricks-Cluster oder serverlosen Compute anstelle eines Open Source Apache Spark-Servers. Siehe Computekonfiguration für Databricks Connect.

Die Syntax von Dateinamen, Verzeichnisnamen oder Volumebezeichnungen ist unter Windows falsch.

Issue: Sie verwenden Databricks Connect auf Windows und sehen Folgendes:

The filename, directory name, or volume label syntax is incorrect.

Ursache: Databricks Connect wurde in einem Verzeichnis mit einem Leerzeichen in Ihrem Pfad installiert.

Lösung: Sie können dies umgehen, indem Sie entweder ohne Leerzeichen in einem Verzeichnispfad installieren oder Ihren Pfad mithilfe des Kurznamenformulars konfigurieren.

Fehler: Fehler beim Initialisieren von MemoryUtil

Problem: Wenn Sie versuchen, eine DatabricksSessionZu erstellen, wird ein Fehler Failed to initialize MemoryUtilzurückgegeben.

Ursache: Apache Arrow ist eine Abhängigkeit des Databricks Connect-Clients und versucht, über Reflection auf eine private Java-Methode zuzugreifen, die in Java 17 standardmäßig wegen Sicherheitsüberlegungen blockiert wird.

Lösung:

Legen Sie das folgende JVM-Feld vor der JVM-Initialisierung fest:

--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED

Weitere Informationen finden Sie unter Apache Arrow Java Compatibility.

Tipp

Informationen zum Festlegen Java Optionen in IntelliJ finden Sie unter IntelliJ Run/Debug configuration.