Solución de problemas de Databricks Connect para Python

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 de Databricks Connect para Python. Databricks Connect permite conectar entornos de desarrollo integrados populares, servidores de cuadernos y aplicaciones personalizadas a los clusters de Azure Databricks. Consulte 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, La resolución DNS falló o se recibió un 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.

Incompatibilidad de versiones de Python

Compruebe la versión de Python que usa localmente tiene al menos la misma versión secundaria que la versión del clúster (por ejemplo, 3.10.11 frente a 3.10.10 es correcto, 3.10 frente a 3.9 no). Para ver las versiones admitidas, consulte la matriz de compatibilidad de versiones.

Si tiene varias versiones de Python instaladas localmente, asegúrese de que Databricks Connect usa la correcta estableciendo la variable de entorno PYSPARK_PYTHON (por ejemplo, PYSPARK_PYTHON=python3).

Instalaciones conflictivas de PySpark

El paquete databricks-connect entra en conflicto con PySpark. Tener ambos instalados provocará errores al inicializar el contexto de Spark en Python. Estos conflictos se pueden manifestar de varias maneras, incluidos errores de "transmisión corrupta" o "clase no encontrada". Si tiene 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 Python entornos virtuales 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 abierto pyspark.
  • Las pruebas con databricks-connect y sin servidor son más rápidas que las pruebas mediante el uso pyspark local.
  • Las integraciones del catálogo de Unity no están disponibles en pyspark, por lo que no se aplicarán las autorizaciones cuando se pruebe pyspark localmente.
  • 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 un connection string 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 de nombre de archivo, nombre de directorio o etiqueta de volumen es incorrecta en Windows

Si usa Databricks Connect en Windows y consulte:

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.