Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Cet article présente Databricks Connect pour Databricks Runtime 13.3 LTS et les versions ultérieures.
Cet article fournit des informations sur la résolution des problèmes pour Databricks Connect pour Python. Databricks Connect vous permet de connecter des environnements de développement intégré (IDE) populaires, des serveurs notebook et des applications personnalisées aux clusters Azure Databricks. Consultez Qu’est-ce que Databricks Connect ?. Pour accéder à la version Scala de cet article, consultez Résolution des problèmes de Databricks Connect pour Scala.
Erreur : StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, échec de la résolution DNS ou en-tête http2 reçu avec l’état 500
Problème : Quand vous essayez d’exécuter du code avec Databricks Connect, vous obtenez des messages d’erreur qui contiennent des chaînes de type StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failed ou Received http2 header with status: 500.
Cause possible : Databricks Connect ne peut pas accéder à votre cluster.
Solutions recommandées :
- Vérifiez que le nom de l’instance de votre espace de travail 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 ID de 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 a la version de cluster personnalisée appropriée compatible avec Databricks Connect.
Non-concordance de la version Python
Vérifiez que la version de Python que vous utilisez localement a au moins la même version mineure que la version sur le cluster (par exemple, 3.10.11 avec 3.10.10 est OK ; 3.10 avec 3.9 ne l’est pas). Pour connaître les versions prises en charge, consultez la matrice de prise en charge des versions.
Si plusieurs versions de Python sont installées localement, assurez-vous que Databricks Connect utilise la version appropriée en définissant la variable d’environnement PYSPARK_PYTHON (par exemple, PYSPARK_PYTHON=python3).
Installations PySpark en conflit
Le package databricks-connect est en conflit avec PySpark. Si les deux sont installés, des erreurs se produisent lors de l’initialisation du contexte Spark dans Python. Cela peut se manifester de plusieurs façons, notamment des erreurs de « flux endommagé » ou de « classe introuvable ». Si vous avez pyspark installé dans votre environnement Python, vérifiez qu’il est désinstallé avant d’installer databricks-connect. Après la désinstallation de PySpark, veillez à réinstaller entièrement le package Databricks Connect :
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 et PySpark s’excluent mutuellement, mais il est possible d’utiliser des environnements virtuels Python pour effectuer un développement à distance avec databricks-connect votre IDE et des tests locaux avec pyspark dans un terminal. Toutefois, Databricks recommande d’utiliser Databricks Connect pour Python avec un calcul serverless pour tous les tests, pour les raisons suivantes :
- Databricks Runtime, et donc
databricks-connect, contient des fonctionnalités qui ne sont pas disponibles dans le système d’exploitationpyspark. - Le test avec
databricks-connectet serverless est plus rapide que le test à l’aidepysparklocalement. - Les intégrations de catalogue Unity ne sont pas disponibles dans
pyspark. Par conséquent, aucune autorisation n’est appliquée lorsque vous testez l’utilisationpysparklocale. - Pour les tests de bout en bout avec une dépendance externe telle que le calcul Databricks, les tests d’intégration, par opposition aux tests unitaires, sont les meilleurs.
Si vous choisissez toujours de vous connecter à un cluster Spark local, vous pouvez spécifier une chaîne de connexion à l’aide des éléments suivants :
connection_string = "sc://localhost"
DatabricksSession.builder.remote(connection_string).getOrCreate()
PATH manquante ou en conflit pour les fichiers binaires
Il est possible que votre valeur de chemin PATH soit configurée de sorte que les commandes comme spark-shell exécutent d’autres fichiers binaires précédemment installés plutôt que celui fourni avec Databricks Connect. Vous devez vous assurer que les fichiers binaires Databricks Connect sont prioritaires, ou supprimer ceux installés précédemment.
Si vous ne pouvez pas exécuter des commandes telles que spark-shell, il est également possible que votre PATH n'ait pas été automatiquement configuré par pip3 install, et que vous deviez ajouter manuellement le répertoire d'installation bin à votre PATH. Il est possible d’utiliser Databricks Connect avec des IDEs même si cela n’est pas configuré.
La syntaxe du nom de fichier, du nom de répertoire ou du nom de volume est incorrecte sur Windows
Si vous utilisez Databricks Connect sur Windows et que vous voyez :
The filename, directory name, or volume label syntax is incorrect.
Databricks Connect a été installé dans un répertoire comportant un espace dans votre chemin d’accès. Vous pouvez contourner ce contournement en installant dans un chemin de répertoire sans espaces, ou en configurant votre chemin à l’aide de la forme de nom abrégée.