Résolution des problèmes de Databricks Connect pour Python
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).
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 PySpark est installé dans votre environnement Python, assurez-vous 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.
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 de commandes telles que spark-shell
, il est également possible que votre chemin PATH n’ait pas été automatiquement configuré par pip3 install
et que vous deviez ajouter manuellement le répertoire d’installation bin
à votre chemin PATH. Il est possible d’utiliser Databricks Connect avec des IDE, 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.