Partager via


Choisir un langage de développement

Databricks prend en charge l’utilisation de différents langages de programmation pour le développement et l’ingénierie des données. Cet article décrit les options disponibles, où ces langues peuvent être utilisées et leurs limitations.

Recommandations

Databricks recommande Python et SQL pour les nouveaux projets :

  • Python est un langage de programmation à usage général très populaire. Les DataFrames PySpark facilitent la création de transformations testables et modulaires. L’écosystème Python prend également en charge un large éventail de bibliothèques pour étendre votre solution.
  • SQL est un langage très populaire pour gérer et manipuler des jeux de données relationnelles en effectuant des opérations telles que l’interrogation, la mise à jour, l’insertion et la suppression de données. SQL est un bon choix si votre arrière-plan se trouve principalement dans les bases de données ou l’entreposage de données. SQL peut également être intégré dans Python à l'aide de spark.sql.

Les langages suivants ont une prise en charge limitée. Databricks ne les recommande donc pas pour les nouveaux projets d’ingénierie de données :

  • Scala est le langage utilisé pour le développement d’Apache Spark™.
  • R n’est entièrement pris en charge que dans les notebooks Databricks.

La prise en charge linguistique varie également en fonction des fonctionnalités utilisées pour générer des pipelines de données et d’autres solutions. Par exemple, Lakeflow Spark Declarative Pipelines prend en charge Python et SQL, tandis que les workflows vous permettent de créer des pipelines de données à l’aide de Python, SQL, Scala et Java.

Remarque

D’autres langages peuvent être utilisés pour interagir avec Databricks pour interroger des données ou effectuer des transformations de données. Toutefois, ces interactions se trouvent principalement dans le contexte des intégrations avec des systèmes externes. Dans ce cas, un développeur peut utiliser presque n’importe quel langage de programmation pour interagir avec Databricks via l’API REST Databricks, les pilotes ODBC/JDBC, des langages spécifiques avec la prise en charge du connecteur SQL Databricks (Go, Python, Javascript/Node.js) ou des langages qui ont des implémentations Spark Connect , telles que Go et Rust.

Développement d’espace de travail et développement local

Vous pouvez développer des projets de données et des pipelines à l’aide de l’espace de travail Databricks ou d’un ENVIRONNEMENT de développement intégré (IDE) sur votre ordinateur local, mais le démarrage de nouveaux projets dans l’espace de travail Databricks est recommandé. L’espace de travail est accessible à l’aide d’un navigateur web, il fournit un accès facile aux données du catalogue Unity et prend en charge de puissantes fonctionnalités de débogage et de fonctionnalités telles que l’Assistant Databricks.

Développez du code dans l’espace de travail Databricks à l’aide de notebooks Databricks ou de l’éditeur SQL. Les notebooks Databricks prennent en charge plusieurs langages de programmation, même à l’intérieur du même notebook, afin de pouvoir développer à l’aide de Python, SQL et Scala.

Il existe plusieurs avantages de développer du code directement dans l’espace de travail Databricks :

  • La boucle de rétroaction est plus rapide. Vous pouvez tester immédiatement le code écrit sur des données réelles.
  • L’Assistant Databricks intégré et prenant en charge le contexte peut accélérer le développement et aider à résoudre les problèmes.
  • Vous pouvez facilement planifier des notebooks et des requêtes directement à partir de l’espace de travail Databricks.
  • Pour le développement Python, vous pouvez structurer correctement votre code Python à l’aide de fichiers en tant que packages Python dans un espace de travail.

Toutefois, le développement local au sein d’un IDE offre les avantages suivants :

  • Les IDE ont de meilleurs outils pour travailler avec des projets logiciels, tels que la navigation, la refactorisation du code et l’analyse statique du code.
  • Vous pouvez choisir la façon dont vous contrôlez votre source et, si vous utilisez Git, des fonctionnalités plus avancées sont disponibles localement que dans l’espace de travail avec des dossiers Git.
  • Il existe un large éventail de langues prises en charge. Par exemple, vous pouvez développer du code à l’aide de Java et le déployer en tant que tâche JAR.
  • Il existe une meilleure prise en charge du débogage du code.
  • Il existe une meilleure prise en charge de l’utilisation de tests unitaires.

Exemple de sélection de langue

La sélection du langage pour l’ingénierie des données est visualisées à l’aide de l’arbre de décision suivant :

Arbre de décision du langage d’ingénierie des données

Développement de code Python

Databricks offre un support de premier ordre pour le langage Python. Vous pouvez l'utiliser dans les notebooks Databricks, les pipelines déclaratifs et les flux de travail Lakeflow Spark, pour développer des fonctions définies par l'utilisateur, et également le déployer en tant que script Python et en tant que wheels.

Lors du développement de projets Python dans l’espace de travail Databricks, que ce soit en tant que notebooks ou dans des fichiers, Databricks fournit des outils tels que l’achèvement du code, la navigation, la validation de syntaxe, la génération de code à l’aide de l’Assistant Databricks, le débogage interactif, etc. Le code développé peut être exécuté de manière interactive, déployé en tant que flux de travail Databricks ou pipelines déclaratifs Lakeflow Spark, ou même en tant que fonction dans le catalogue Unity. Vous pouvez structurer votre code en le fractionnant en packages Python distincts qui peuvent ensuite être utilisés dans plusieurs pipelines ou travaux.

Databricks fournit une extension pour Visual Studio Code et JetBrains offre un plug-in pour PyCharm qui vous permet de développer du code Python dans un IDE, de synchroniser du code avec un espace de travail Databricks, de l’exécuter à l’intérieur de l’espace de travail et d’effectuer un débogage pas à pas à l’aide de Databricks Connect. Le code développé peut ensuite être déployé à l'aide des Bundles de ressources Databricks en tant que tâche ou pipeline Databricks.

Développement de code SQL

Le langage SQL peut être utilisé dans les notebooks Databricks ou en tant que requêtes Databricks à l’aide de l’éditeur SQL. Dans les deux cas, un développeur accède à des outils tels que la saisie semi-automatique du code et l’Assistant Databricks, sensible au contexte, qui permet la génération de code et la résolution de problèmes. Le code développé peut être déployé en tant que tâche ou pipeline.

Les flux de travail Databricks vous permettent également d’exécuter du code SQL stocké dans un fichier. Vous pouvez utiliser un IDE pour créer ces fichiers et les charger dans l’espace de travail. Une autre utilisation populaire de SQL est dans les pipelines d’ingénierie des données développés à l’aide de dbt (outil de génération de données). Les flux de travail Databricks prennent en charge l’orchestration de projets dbt.

Développement de code Scala

Scala est le langage d’origine d’Apache Spark™. C’est un langage puissant, mais il a une courbe d’apprentissage raide. Bien que Scala soit un langage pris en charge dans les notebooks Databricks, certaines limitations sont liées à la création et à la maintenance des classes et objets Scala qui peuvent rendre le développement de pipelines complexes plus difficiles. En règle générale, les IDE offrent une meilleure prise en charge du développement du code Scala, qui peut ensuite être déployé à l’aide de tâches JAR dans les flux de travail Databricks.

Étapes suivantes