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.
Databricks admite el uso de diferentes lenguajes de programación para el desarrollo y la ingeniería de datos. En este artículo se describen las opciones disponibles, donde se pueden usar esos idiomas y sus limitaciones.
Recomendaciones
Databricks recomienda Python y SQL para proyectos nuevos:
- python es un lenguaje de programación de uso general muy popular. Los dataframes de PySpark facilitan la creación de transformaciones modulares y comprobables. El ecosistema de Python también admite una amplia variedad de bibliotecas para ampliar tu solución.
-
SQL es un lenguaje muy popular para administrar y manipular conjuntos de datos relacionales mediante operaciones como consultar, actualizar, insertar y eliminar datos. SQL es una buena opción si tu experiencia es principalmente en bases de datos o en almacenes de datos. SQL también se puede incrustar en Python mediante
spark.sql.
Los siguientes lenguajes tienen compatibilidad limitada, por lo que Databricks no los recomienda para los nuevos proyectos de ingeniería de datos:
- Scala es el lenguaje que se usa para el desarrollo de Apache Spark™.
- R solo es totalmente compatible con los notebooks de Databricks.
La compatibilidad con los lenguajes también varía en función de las capacidades de las funcionalidades utilizadas para crear canalizaciones de datos y otras soluciones. Por ejemplo, Lakeflow Spark Declarative Pipelines admite Python y SQL, mientras que los flujos de trabajo permiten crear canalizaciones de datos mediante Python, SQL, Scala y Java.
Nota
Otros lenguajes se pueden usar para interactuar con Databricks para consultar datos o realizar transformaciones de datos. Sin embargo, estas interacciones se encuentran principalmente en el contexto de integraciones con sistemas externos. En estos casos, un desarrollador puede usar casi cualquier lenguaje de programación para interactuar con Databricks a través de la API rest de Databricks, controladores ODBC/JDBC, lenguajes específicos con compatibilidad con conectores sql de Databricks (Go, Python, Javascript/Node.js), o lenguajes que tienen implementaciones de Spark Connect, como Go y Rust.
Desarrollo del área de trabajo frente al desarrollo local
Puede desarrollar proyectos de datos y canalizaciones mediante el área de trabajo de Databricks o un IDE (entorno de desarrollo integrado) en la máquina local, pero se recomienda iniciar nuevos proyectos en el área de trabajo de Databricks. El área de trabajo es accesible mediante un explorador web, proporciona fácil acceso a los datos en el catálogo de Unity y admite eficaces funcionalidades de depuración y características como Databricks Assistant.
Desarrolle código en el área de trabajo de Databricks mediante cuadernos de Databricks o el editor de SQL. Los cuadernos de Databricks admiten varios lenguajes de programación incluso dentro del mismo cuaderno, por lo que puede desarrollar con Python, SQL y Scala.
Hay varias ventajas de desarrollar código directamente en el área de trabajo de Databricks:
- El bucle de retroalimentación es más rápido. Puede probar inmediatamente el código escrito en datos reales.
- El asistente integrado de Databricks compatible con el contexto puede acelerar el desarrollo y ayudar a solucionar problemas.
- Puede programar fácilmente cuadernos y consultas directamente desde el área de trabajo de Databricks.
- Para el desarrollo de Python, puede estructurar correctamente el código de Python mediante el uso de archivos como paquetes de Python en un área de trabajo.
Sin embargo, el desarrollo local dentro de un IDE proporciona las siguientes ventajas:
- Los IDE tienen mejores herramientas para trabajar con proyectos de software, como navegación, refactorización de código y análisis de código estático.
- Puede elegir cómo controlar el origen y, si usa Git, la funcionalidad más avanzada está disponible localmente que en el área de trabajo con carpetas de Git.
- Hay una gama más amplia de idiomas admitidos. Por ejemplo, puede desarrollar código mediante Java e implementarlo como una tarea JAR.
- Hay mejor soporte para la depuración de código.
- Se ofrece mejor soporte para trabajar con pruebas unitarias.
Ejemplo de selección de idioma
La selección de idioma para la ingeniería de datos se visualiza mediante el siguiente árbol de decisión:
Desarrollo de código de Python
El lenguaje Python tiene compatibilidad de primera clase con Databricks. Puede usarlo en cuadernos de Databricks, canalizaciones declarativas y flujos de trabajo de Lakeflow Spark para desarrollar UDF e implementarlo también como un script de Python y como ruedas.
Al desarrollar proyectos de Python en el área de trabajo de Databricks, ya sea como cuadernos o en archivos, Databricks proporciona herramientas como finalización de código, navegación, validación de sintaxis, generación de código mediante Databricks Assistant, depuración interactiva y más. El código desarrollado se puede ejecutar de forma interactiva, implementada como un flujo de trabajo de Databricks o canalizaciones declarativas de Spark de Lakeflow, o incluso como una función en el catálogo de Unity. Puede estructurar el código dividiándolo en paquetes de Python independientes que se pueden usar en varias canalizaciones o trabajos.
Databricks proporciona una extensión de para Visual Studio Code y JetBrains ofrece un complemento para PyCharm que le permite desarrollar código de Python en un IDE, sincronizar código con un área de trabajo de Databricks, ejecutarlo dentro del área de trabajo y realizar la depuración paso a paso mediante Databricks Connect. A continuación, el código desarrollado se puede implementar mediante paquetes de activos de Databricks como tarea o canalización de Databricks.
Desarrollo de código SQL
El lenguaje SQL se puede usar en cuadernos de Databricks o como consultas de Databricks mediante el editor de SQL. En ambos casos, un desarrollador obtiene acceso a herramientas como la finalización de código y el asistente Databricks, que es compatible con el contexto y se puede usar para la generación de código y la solución de problemas. El código desarrollado se puede implementar como un trabajo o una canalización.
Los flujos de trabajo de Databricks también permiten ejecutar código SQL almacenado en un archivo. Puede usar un IDE para crear estos archivos y cargarlos en el área de trabajo. Otro uso popular de SQL es en canalizaciones de ingeniería de datos desarrolladas mediante dbt (herramienta de compilación de datos). Los flujos de trabajo de Databricks admiten la orquestación de proyectos de dbt.
Desarrollo de código de Scala
Scala es el lenguaje original de Apache Spark™. Es un lenguaje potente, pero tiene una curva de aprendizaje empinada. Aunque Scala es un lenguaje admitido en cuadernos de Databricks, hay algunas limitaciones relacionadas con cómo se crean y mantienen las clases y objetos de Scala que pueden dificultar el desarrollo de canalizaciones complejas. Normalmente, los IDE proporcionan una mejor compatibilidad con el desarrollo de código Scala, que luego se puede implementar mediante tareas JAR en flujos de trabajo de Databricks.
Pasos siguientes
- Desarrollar en Databricks es un punto de entrada para la documentación sobre las distintas opciones de desarrollo de Databricks.
- En la página herramientas de desarrollo se describen las distintas herramientas de desarrollo que se pueden usar para desarrollar localmente para Databricks, incluidos conjuntos de recursos de Databricks y complementos para IDE.
- Desarrollo de código en cuadernos de Databricks describe cómo desarrollar en el área de trabajo de Databricks mediante cuadernos de Databricks.
- Escribir consultas y explorar datos en el editor de SQL. En este artículo se describe cómo usar el editor sql de Databricks para trabajar con código SQL.
- Desarrollo de canalizaciones declarativas de Spark de Lakeflow describe el proceso de desarrollo de canalizaciones declarativas de Spark de Lakeflow.
- databricks Connect permite conectarse a clústeres de Databricks y ejecutar código desde el entorno local.
- Aprenda a usar Databricks Assistant para un desarrollo más rápido y resolver problemas de código.