Aller au contenu principal

Dépannage de Databricks Connect pour Scala

remarque

Cet article couvre Databricks Connect pour Databricks Runtime 13.3 LTS et les versions ultérieures.

Cet article fournit des informations de dépannage pour Databricks Connect pour Scala. Databricks Connect vous permet de connecter des IDEs, des serveurs Notebook et des applications personnalisées aux clusters Databricks. See Databricks Connect. Pour la version Python de cet article, consultez le dépannage de Databricks Connect pour Python.

Erreur : StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, échec de la résolution DNS ou réception d’un en-tête http2 avec le statut 500

Problème : Lorsque vous essayez d'exécuter du code avec Databricks Connect, vous obtenez des messages d'erreur qui contiennent des chaînes telles que StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failed ou Received http2 header with status: 500.

Cause : Databricks Connect ne peut pas atteindre votre cluster.

Solutions :

  • Vérifiez que le nom de votre instance Workspace est correct. Si vous utilisez des variables d'environnement, vérifiez que la variable d'environnement associée est disponible et correcte sur votre machine de développement locale.
  • Vérifiez que l'ID de votre cluster est correct. Si vous utilisez des variables d'environnement, vérifiez que la variable d'environnement associée est disponible et correcte sur votre machine de développement locale.
  • Vérifiez que votre cluster dispose de la version personnalisée de cluster correcte compatible avec Databricks Connect.

Erreurs de connexion au serveur Apache Spark

Problème :

Tentative de connexion à un serveur Apache Spark open source (par exemple, un Apache Spark 3.5.x exécuté localement, Le serveur Spark Connect à sc://localhost), entraîne des erreurs telles que la classe introuvable, des incohérences de comportement de l'API ou des échecs de sérialisation.

Cause :

Databricks Connect est conçu à partir de Databricks Runtime, qui a des dépendances différentes de l’Apache Spark open source. En particulier, Databricks Connect 15.4 et 16.4 sont incompatibles avec Apache Spark 3.5.x. parce qu'ils utilisent une version différente de la bibliothèque json4s.

Solutions :

Utilisez un cluster Databricks ou un compute Serverless au lieu d'un serveur Apache Spark open source. Voir Compute configuration pour Databricks Connect.

La syntaxe du nom de fichier, du nom de répertoire ou de l'étiquette de volume est incorrecte sur Windows

Problème : Vous utilisez Databricks Connect sur Windows et voyez :

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

Cause : Databricks Connect a été installé dans un répertoire avec un espace dans votre chemin d'accès.

Solution : Vous pouvez contourner ce problème en l'installant dans un chemin de répertoire sans espaces, ou en configurant votre chemin à l'aide du formulaire de nom abrégé.

Erreur : Échec de l'initialisation de MemoryUtil

Problème : Lorsque vous essayez de créer un DatabricksSession, il renvoie une erreur Failed to initialize MemoryUtil.

Cause : Apache Arrow est une dépendance du client Databricks Connect, et il tente d'accéder à une méthode Java privée en utilisant la réflexion, ce qui est by default bloqué dans Java 17 en raison de considérations de sécurité.

Solutions :

Définissez le champ JVM suivant avant l’initialisation de la JVM :

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

Pour plus d'information, consultez Compatibilité Apache Arrow Java.

astuce

Pour définir les options Java dans IntelliJ, consultez la configuration d'exécution/de débogage d'IntelliJ.