Azure Databricks para desarrolladores de Python
En esta sección se proporciona una guía para desarrollar cuadernos y trabajos en Azure Databricks mediante el lenguaje Python, incluidos tutoriales para flujos de trabajo y tareas comunes, así como vínculos a API, bibliotecas y herramientas.
Primeros pasos:
- Importar código: importe su propio código desde archivos o repositorios de Git, o bien pruebe un tutorial que se muestra a continuación. Databricks recomienda aprender con Notebooks de Databricks.
- Ejecute el código en un clúster: cree un clúster propio, o bien asegúrese de que tiene permisos para usar un clúster compartido. Asocie el cuaderno al clúster y ejecute el cuaderno.
- A continuación, puede hacer lo siguiente:
- Trabajar con conjuntos de datos más grandes usando Apache Spark
- Añadir visualizaciones
- Automatizar la carga de trabajo como un trabajo
- Usar aprendizaje automático para analizar los datos
- Desarrollo en IDE (entornos de desarrollo integrados)
Tutoriales
En los tutoriales siguientes se proporcionan código y cuadernos de ejemplo para obtener información sobre los flujos de trabajo comunes. Consulte Importar un cuaderno para obtener instrucciones sobre cómo importar ejemplos de cuadernos en el área de trabajo.
Ingeniería de datos
- Tutorial: Carga y transformación de datos mediante DataFrames de Apache Spark proporciona un tutorial que le ayudará a obtener información sobre los DataFrames de Apache Spark para la preparación y el análisis de datos.
- Tutorial: Delta Lake.
- Tutorial: ejecuta tu primera canalización de Delta Live Tables.
Ciencia de datos y aprendizaje automático
- Introducción a los DataFrames de Apache Spark para la preparación y el análisis de datos: Tutorial: Carga y transformación de datos mediante DataFrames de Apache Spark
- Tutorial: Modelos de ML de un extremo a otro en Azure Databricks. Para ver ejemplos adicionales, consulte Tutoriales: introducción a la inteligencia artificial y al aprendizaje automático y la guía de Inicio rápido en Python de MLflow.
- Mosaic AutoML le permite empezar a desarrollar rápidamente modelos de aprendizaje automático en sus propios conjuntos de datos. Su enfoque de caja de cristal genera cuadernos con el flujo de trabajo de aprendizaje automático completo, que puede clonar, modificar y volver a ejecutar.
- Administrar el ciclo de vida del modelo en Unity Catalog
- Tutorial: Modelos de ML de un extremo a otro en Azure Databricks
Depuración en cuadernos de Python
En el cuaderno de ejemplo se muestra cómo usar el depurador de Python (pdb) en cuadernos de Databricks. Para usar el depurador de Python, debes ejecutar Databricks Runtime 11.3 LTS o superior.
Con Databricks Runtime 12.2 LTS y versiones posteriores, puedes usar el explorador de variables para realizar un seguimiento del valor actual de las variables de Python en la interfaz de usuario del cuaderno. Puedes usar el explorador de variables para observar los valores de las variables de Python a medida que recorres los puntos de interrupción.
Cuaderno de ejemplo del depurador de Python
Nota:
breakpoint()
no se admite en IPython y, por tanto, no funciona en cuadernos de Databricks. Puede usar import pdb; pdb.set_trace()
en lugar de breakpoint()
.
API de Python
El código de Python que se ejecuta fuera de Databricks generalmente se puede ejecutar en Databricks y viceversa. Si tiene código previo, impórtelo en Databricks para empezar. Vea Administración de código con cuadernos y carpetas de Git de Databricksa continuación para obtener más información.
Databricks puede ejecutar cargas de trabajo de Python distribuidas y de una sola máquina. En el caso de computación de una sola máquina, puede usar las API y bibliotecas de Python como de costumbre; por ejemplo, Pandas y Scikit-learn "solo funcionarán". En el caso de las cargas de trabajo de Python distribuidas, Databricks ofrece dos API populares de forma predeterminada: PySpark y la API de Pandas en Spark.
API de PySpark
PySpark es la API oficial de Python para Apache Spark y combina la eficacia de Python y Apache Spark. PySpark es más flexible que la API de Pandas en Spark y proporciona una amplia compatibilidad y características para la funcionalidad de ciencia de datos e ingeniería, como Spark SQL, Structured Streaming, MLLib y GraphX.
Pandas API en Spark
Nota:
El proyecto de código abierto Koalas ahora recomienda cambiar a la API de Pandas en Spark. La API de Pandas en Spark está disponible en clústeres que ejecutan Databricks Runtime 10.0 (EoS) y versiones posteriores. En el caso de los clústeres que ejecutan Databricks Runtime 9.1 LTS y anteriores, use Koalas en su lugar.
Pandas es un paquete de Python que suelen usar los científicos de datos para el análisis y la manipulación de datos. Sin embargo, Pandas no se escala horizontalmente a macrodatos. La API de Pandas en Spark subsana esta carencia, al proporcionar API equivalentes a Pandas que funcionan en Apache Spark. Esta API de código abierto es una opción ideal para los científicos de datos que están familiarizados con Pandas, pero no con Apache Spark.
Administración de código con cuadernos y carpetas de Git de Databricks
Los cuadernos de Databricks admiten Python. Estos cuadernos ofrecen una funcionalidad similar a la de Jupyter, pero con añadidos como visualizaciones integradas mediante macrodatos, integraciones de Apache Spark para la depuración y supervisión del rendimiento, e integraciones de MLflow para el seguimiento de experimentos de aprendizaje automático. Comenzar importando un cuaderno. Una vez que tenga acceso a un clúster, puede asociar un cuaderno al clúster y ejecutar el cuaderno.
Sugerencia
Para restablecer completamente el estado del cuaderno, puede ser útil reiniciar el kernel de iPython. Para los usuarios de Jupyter, la opción "reiniciar kernel" en Jupyter corresponde a desasociar y volver a asociar un cuaderno en Databricks. Para reiniciar el kernel en un cuaderno Python, haga clic en el selector de proceso de la barra de herramientas del cuaderno y mantenga el puntero sobre el clúster o almacenamiento SQL asociados en la lista para mostrar un menú lateral. Seleccione Desasociar y volver a adjuntar. Esto desasocia el cuaderno del clúster y lo vuelve a asociar, lo que reinicia el proceso de Python.
Carpetas de Git de Databricks permiten a los usuarios sincronizar cuadernos y otros archivos con repositorios de Git. Las carpetas de Git de Databricks ayudan con el control de versiones de código y la colaboración, y puede simplificar la importación de un repositorio completo de código en Azure Databricks, la visualización de versiones anteriores del cuaderno y la integración con el desarrollo del IDE. Comenzar clonando un repositorio de Git remoto. Después, puedes abrir o crear cuadernos con el clon del repositorio, adjuntar el cuaderno a un clúster y ejecutar el cuaderno.
Clústeres y bibliotecas
Azure Databricks Compute proporciona administración informática para clústeres de cualquier tamaño: desde clústeres de un solo nodo hasta grandes clústeres. Puede personalizar el hardware y las bibliotecas del clúster según sus necesidades. Por lo general, los científicos de datos comenzarán a trabajar creando un clúster o usando un clúster compartido existente. Una vez que tenga acceso a un clúster, puede asociar un cuaderno al clúster o ejecutar un trabajo en el clúster.
- Para cargas de trabajo pequeñas que solo requieren nodos únicos, los científicos de datos pueden usar el proceso de nodo único para reducir costes.
- Para obtener consejos detallados, vea Recomendaciones de configuración de proceso.
- Los administradores pueden configurar directivas de clúster para simplificar y guiar la creación del clúster.
Los clústeres de Azure Databricks usan Databricks Runtime, que proporciona muchas bibliotecas populares listas para usar, como Apache Spark, Delta Lake, Pandas, etc. También puede instalar bibliotecas adicionales, de terceros o personalizadas de Python, para usarlas con cuadernos y trabajos.
- Comience con las bibliotecas predeterminadas en las versiones de las notas de la versión y compatibilidad de Databricks Runtime. Use Databricks Runtime para Machine Learning para cargas de trabajo de aprendizaje automático. Para obtener listas completas de bibliotecas preinstaladas, consulte Notas de las versiones y compatibilidad de Databricks Runtime.
- Personalice el entorno mediante bibliotecas de Python con ámbito de cuaderno, lo que le permite modificar el entorno de cuaderno o de trabajo con bibliotecas de PyPI u otros repositorios. El comando mágico
%pip install my_library
instalamy_library
en todos los nodos del clúster conectado en ese momento, pero no interfiere con otras cargas de trabajo en clústeres compartidos. - Instale bibliotecas que no son de Python como bibliotecas de clúster según sea necesario.
- Para más información, consulte Bibliotecas.
Visualizaciones
Los cuadernos de Python de Azure Databricks disponen de compatibilidad integrada con muchos tipos de visualizaciones. También es posible usar visualizaciones heredadas.
También puede visualizar datos mediante bibliotecas de terceros; algunos están preinstalados en Databricks Runtime, pero también puede instalar bibliotecas personalizadas. Entre las opciones más populares se incluyen:
Trabajos
Puede automatizar las cargas de trabajo de Python como trabajos programados o desencadenados en Databricks. Los trabajos pueden ejecutar cuadernos, scripts de Python y archivos de rueda de Python.
- Cree y actualice trabajos mediante la interfaz de usuario de Databricks o la API rest de Databricks.
- El SDK de Python de Databricks permite crear, editar y eliminar trabajos mediante programación.
- La CLI de Databricks proporciona una cómoda interfaz de línea de comandos para automatizar los trabajos.
Sugerencia
Para programar un script de Python en lugar de un cuaderno, use el campo spark_python_task
en tasks
en el cuerpo de una solicitud de creación de trabajo.
Machine Learning
Databricks admite una amplia variedad de cargas de trabajo de aprendizaje automático (ML), incluidos el ML tradicional en datos tabulares, el aprendizaje profundo para visión artificial y el procesamiento de lenguaje natural, los sistemas de recomendaciones, el análisis de grafos, etc. Para obtener información general sobre el aprendizaje automático en Databricks, consulte IA y aprendizaje automático en Databricks.
Para algoritmos de aprendizaje automático, puede usar bibliotecas preinstaladas en Databricks Runtime para Machine Learning, que incluye herramientas populares de Python como Scikit-learn, TensorFlow, Keras, PyTorch, Apache Spark MLlib y XGBoost. También puede instalar bibliotecas personalizadas.
Para las operaciones de aprendizaje automático (MLOps), Azure Databricks proporciona un servicio administrado para la biblioteca de código abierto MLFlow. Con el seguimiento de MLflow, puede registrar el desarrollo de modelos y guardar modelos en formatos reutilizables. Puede usar el registro de modelos de MLflow para administrar y automatizar la promoción de modelos hacia producción. Los trabajos y Model Serving permiten hospedar modelos como trabajos por lotes y streaming y como puntos de conexión REST. Para obtener más información y ejemplos, consulte la Administración del ciclo de vida de ML mediante MLflow o la Documentación de la API de Python de MLflow.
Para empezar a trabajar con cargas de trabajo comunes de aprendizaje automático, consulte las páginas siguientes:
- Entrenamiento de Scikit-learn y seguimiento con MLflow: tutorial de 10 minutos: aprendizaje automático en Databricks con Scikit-learn
- Entrenamiento de modelos de aprendizaje profundo: aprendizaje profundo
- Ajuste de hiperparámetros: paralelización del ajuste de hiperparámetros de Hyperopt
- Análisis de grafos: Uso de GraphFrames en Azure Databricks
IDE, herramientas para desarrolladores y SDK
Además de desarrollar código de Python en cuadernos de Azure Databricks, puede desarrollar externamente mediante entornos de desarrollo integrados (IDE), como PyCharm, Jupyter y Visual Studio Code. Para sincronizar el trabajo entre entornos de desarrollo externos y Databricks, hay varias opciones:
- Código: puede sincronizar el código mediante Git. Consulte integración de Git para carpetas de Git de Databricks.
- Bibliotecas y trabajos: Puede crear bibliotecas (como archivos de rueda de Python) externamente y cargarlas en Databricks. Esas bibliotecas se pueden importar en cuadernos de Databricks o se pueden usar para crear trabajos. Consulte Bibliotecas y Programación y orquestación de flujos de trabajo.
- Ejecución de máquina remota: puede ejecutar código desde el IDE local para desarrollo y pruebas interactivos. El IDE puede comunicarse con Azure Databricks para ejecutar Apache Spark y cálculos grandes en clústeres de Azure Databricks. Consulte Databricks Connect.
Databricks proporciona un conjunto de SDK, incluido un SDK de Python, que admite la automatización y la integración con herramientas externas. Puede utilizar los SDK de Databricks para administrar recursos como clústeres y bibliotecas, código y otros objetos del área de trabajo, cargas de trabajo y tareas, etc. Consulte los SDK de Databricks.
Para obtener más información sobre los IDE, las herramientas de desarrollo y los SDK, consulte Herramientas de desarrollo.
Recursos adicionales
La Databricks Academy ofrece cursos autodirigidos y dirigidos por instructores en muchos temas.
Databricks Labs proporciona herramientas para el desarrollo de Python en Databricks, como el complemento pytest y el complemento pylint.
Entre las características que admiten la interoperabilidad entre PySpark y pandas se incluyen las siguientes:
Entre las herramientas de conectividad de Python y SQL Database se incluyen:
- El Databricks SQL Connector para Python permite usar código de Python, para ejecutar comandos SQL en recursos de Azure Databricks.
- pyodbc permite conectarse desde el código local de Python, a través de ODBC, a datos almacenados en el lago de datos de Databricks.
Las preguntas más frecuentes y sugerencias para mover cargas de trabajo de Python a Databricks se pueden encontrar en La Base de conocimiento de Databricks.