Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Este artículo describe Databricks Connect para Databricks Runtime 13.3 LTS y versiones posteriores.
En este artículo se proporciona información de solución de problemas para Databricks Connect para Python. Databricks Connect le permite conectar los clústeres de Azure Databricks a entornos de desarrollo integrado populares, servidores de cuadernos y otras aplicaciones personalizadas. Consulte ¿Qué es Databricks Connect?. Para obtener la versión de Scala de este artículo, consulte Solución de problemas de Databricks Connect para Scala.
Error: StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, Resolución DNS con errores o Recibido encabezado http2 con estado 500
Problema: al intentar ejecutar código con Databricks Connect, obtiene un mensaje de error que contiene cadenas como StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failed o Received http2 header with status: 500.
Causa posible: Databricks Connect no puede acceder al clúster.
Soluciones recomendadas:
- Asegúrese de que el nombre de la instancia del área de trabajo sea correcto. Si usa variables de entorno, asegúrese de que la variable de entorno relacionada esté disponible y sea correcta en la máquina de desarrollo local.
- Asegúrese de que el identificador del clúster sea correcto. Si usa variables de entorno, asegúrese de que la variable de entorno relacionada esté disponible y sea correcta en la máquina de desarrollo local.
- Asegúrese de que el clúster tenga la versión personalizada del clúster correcta y que sea compatible con Databricks Connect.
Versión de Python no coincidente
Compruebe que la versión de Python que utiliza localmente tiene al menos la misma versión secundaria que la versión existente en el clúster (por ejemplo, se admite 3.10.11 respecto de 3.10.10, pero no 3.10 respecto de 3.9). Para ver las versiones admitidas, consulte la matriz de compatibilidad de versiones.
Si tiene varias versiones de Python instaladas en el entorno local, asegúrese de que Databricks Connect utiliza la correcta; para ello, establezca la variable de entorno PYSPARK_PYTHON (por ejemplo, PYSPARK_PYTHON=python3).
Instalaciones de PySpark en conflicto
El paquete databricks-connect entra en conflicto con PySpark. Tener ambos instalados generará errores al inicializar el contexto de Spark en Python. Estos conflictos se pueden manifestar de varias maneras, incluidos errores de "flujo dañado" o "no se encontró la clase". Si ha pyspark instalado en el entorno de Python, asegúrese de que se desinstala antes de instalar databricks-connect. Una vez que desinstale PySpark, no olvide volver a instalar completamente el paquete de 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 y PySpark son mutuamente excluyentes, pero es posible usar entornos virtuales de Python para realizar el desarrollo remoto con databricks-connect en el IDE y las pruebas locales con pyspark en un terminal. Sin embargo, Databricks recomienda usar Databricks Connect para Python con proceso sin servidor para todas las pruebas, por los siguientes motivos:
- Databricks Runtime y, por ende,
databricks-connect, contiene características que no están disponibles en el software de código abiertopyspark. - Las pruebas con
databricks-connecty sin servidor son más rápidas que las pruebas mediante el usopysparklocal. - Las integraciones del catálogo de Unity no están disponibles en
pyspark, por lo que no se aplicarán las autorizaciones cuando se pruebepysparklocalmente. - Para probar de un extremo a otro con una dependencia externa, como el proceso de Databricks, las pruebas de integración, en lugar de las pruebas unitarias, son las mejores.
Si todavía decide conectarse a un clúster de Spark local, puede especificar una cadena de conexión mediante lo siguiente:
connection_string = "sc://localhost"
DatabricksSession.builder.remote(connection_string).getOrCreate()
Entrada PATH faltante o en conflicto para los archivos binarios
Es posible que la ruta de acceso PATH esté configurada para que comandos como spark-shell ejecuten otro archivo binario instalado previamente en lugar del que se incluye con Databricks Connect. Debe asegurarse de que los archivos binarios de Databricks Connect tengan prioridad, o bien quitar los instalados previamente.
Si no puede ejecutar comandos como spark-shell, también es posible que pip3 install no haya configurado el PATH automáticamente y tendrá que agregar el directorio de instalación bin a su PATH manualmente. Es posible usar Databricks Connect con IDE aunque esto no esté configurado.
La sintaxis del nombre de archivo, el nombre del directorio o la etiqueta de volumen no es correcta en Windows
Si utiliza Databricks Connect en Windows y ve lo siguiente:
The filename, directory name, or volume label syntax is incorrect.
Databricks Connect se instaló en un directorio con un espacio en la ruta de acceso. Una solución alternativa es hacer la instalación en una ruta de acceso de directorio sin espacios o configurar la ruta de acceso con el formato de nombre corto.