Aller au contenu principal

Tutoriel : Développer une application Databricks localement avec Databricks Connect

Databricks Apps vous permet de créer des applications de données et d'IA sécurisées sur la plateforme Databricks que vous pouvez facilement partager avec les utilisateurs. En développant une application Databricks avec PySpark et Databricks Connect, vous pouvez exploiter la puissance d'Apache Spark dans votre application. Similaire à un pilote JDBC, Databricks Connect peut être intégré à n'importe quelle application pour interagir avec Databricks. De plus, Databricks Connect offre toute l'expressivité de Python via PySpark, vous permettant d'exécuter toutes les Transformations de données avec Spark sur le compute Databricks.

Pour plus d'information sur les applications et Databricks Connect, consultez Databricks Apps et Databricks Connect.

Ce tutoriel explique comment créer une application Databricks simple dans le Workspace Databricks, puis la développer localement à l'aide de Databricks Connect. L'application s'exécute sur un compute serverless avec Python 3.11 et Databricks Connect 15.4.*. Pour utiliser une autre version, les versions de Python et de Databricks Connect doivent être compatibles. Consultez les versions de Databricks Connect.

astuce

Pour une application d'exemple plus avancée qui utilise Databricks Connect, consultez le repository GitHub Databricks Demos.

Exigences

Étape 1 : Configurez l'authentification et le compute serverless

Ce tutoriel utilise le compute serverless et l'authentification OAuth user-to-machine (U2M) de Databricks ainsi qu'un profil de configuration Databricks pour l'authentification à votre workspace Databricks.

Utilisez la Databricks CLI pour initier la connexion OAuth en exécutant la commande suivante. Utilisez DEFAULT comme nom de profil et suivez les instructions à l'écran pour vous connecter à votre Databricks workspace.

Bash
databricks auth login --configure-serverless --host <workspace-url>

Étape 2 : Créez une application

Créez maintenant une application Databricks dans le workspace.

  1. Dans votre workspace Databricks, cliquez sur + Nouveau > Application dans la barre latérale gauche.

  2. Sous Installer à partir d'un Template , accédez à l'tab Dash .

  3. Choisissez le Template **Hello world**.

  4. Nommez l'application dash-hello-world et cliquez sur Installer .

Ceci crée une nouvelle application basée sur le Template sélectionné, la déploie dans votre Workspace et la start. Pour afficher l'application, cliquez sur l'URL Exécution en haut de la page Vue d'ensemble :

Affichez l&#39;application « Hello World »

Étape 3 : Copiez l'application sur votre machine locale

Ensuite, download le code source de l'application vers votre machine locale.

  1. Copiez la première commande sous **Synchroniser les fichiers** sur la page de l'application.

  2. Dans un terminal local, créez un répertoire dash-hello-world, puis exécutez la commande copiée, par exemple :

    Bash
    mkdir dash-hello-world
    cd dash-hello-world
    databricks workspace export-dir /Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_01-18_38/dash-hello-world-app .

La commande copie deux nouveaux fichiers dans le répertoire nommé app.py et app.yaml. app.yaml définit la configuration de l’application, y compris son point d’entrée et ses autorisations. app.py contient le code qui implémente la fonctionnalité et l’interface utilisateur de l’application.

Étape 4 : Ajouter Databricks Connect

Créez un environnement virtuel Python pour votre application Databricks et ajoutez databricks-connect comme exigence.

  1. Créez un environnement virtuel nommé .myvenv à la racine du dossier du projet et activez-le :

    Bash
    python3.11 -m venv .myvenv
    source .myvenv/bin/activate
  2. Mettez à jour les dépendances de votre application dans le requirements.txt de votre projet. Ajouter databricks-connect==15.4.*:

    dash== 3.3.*
    dash-bootstrap-components==2.0.*
    pandas
    plotly==6.5.*
    databricks-sql-connector
    databricks-sdk
    python-dotenv
    dash-ag-grid
    databricks-connect==15.4.*
  3. Installez les dépendances dans requirements.txt dans votre environnement virtuel :

    Bash
    pip install -r requirements.txt

Étape 5 : Modifier l'application et tester localement

Personnalisez et développez votre application localement.

  1. Mettre à jour app.py pour lire les données de Databricks à l'aide de Databricks Connect et exploiter Apache Spark pour effectuer des transformations de données. Également, ajouter du code pour rendre les données interactives, ajouter une option de style et autoriser l'upload de données.

    Python
    # app.py

    import pandas as pd
    from dash import Dash, dcc, html
    import plotly.express as px
    import dash_bootstrap_components as dbc
    from databricks.connect.session import DatabricksSession
    from pyspark.sql.functions import col

    spark = DatabricksSession.builder.serverless().getOrCreate()
    # Data transformations with Spark in Python
    df = (spark.read.table("samples.nyctaxi.trips")
    .select('trip_distance', 'fare_amount')
    .filter(col('trip_distance') < 10)
    .limit(1000))

    chart_data = df.toPandas()

    # Initialize the Dash app with Bootstrap styling
    dash_app = Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])

    # Define the app layout
    dash_app.layout = dbc.Container([
    dbc.Row([dbc.Col(html.H1('Trip cost by distance'), width=12)]),
    dcc.Graph(
    id='fare-scatter',
    figure=px.scatter(chart_data, x='trip_distance', y='fare_amount',
    labels={'trip_distance': 'Trip distance (miles)', 'fare_amount': 'Fare amount (USD)'},
    template='simple_white'),
    style={'height': '500px', 'width': '1000px'}
    )
    ], fluid=True)

    if __name__ == '__main__':
    dash_app.run(debug=True)
  2. Exécutez et testez votre application localement. Vous pouvez utiliser Python ou la CLI Databricks pour l’exécuter.

    • Exécutez l’application Python.

      Bash
      python app.py

      Accédez à http://127.0.0.1:8050/ dans une fenêtre de navigateur pour afficher l'application.

    • Ou utilisez la commande databricks apps run-local pour exécuter et déboguer l'application. Cette commande installe toutes les dépendances et prépare l'environnement virtuel, puis start l'application et le débogueur sur le port 5678.

      Bash
      databricks apps run-local --prepare-environment --debug

      Accédez à http://localhost:8001 dans une fenêtre de navigateur pour visualiser l'application.

      Pour définir des points d'arrêt dans Visual Studio Code, installez l'extension de débogueur Python, puis allez dans **Run** > **Start Debugging** > **Remote Attach**.

Voir l&#39;application des coûts de trajet localement

Étape 6 : Redéployez l'application.

Enfin, upload votre application modifiée localement vers votre Workspace Databricks et déployez-la sur compute.

important

Pour éviter d'upload l'intégralité de votre environnement virtuel Python vers Databricks, votre projet doit comporter un fichier .gitignore soit à la racine avec .myvenv, soit dans le dossier .myvenv qui exclut ces fichiers.

  1. Dans votre workspace Databricks, cliquez sur **Compute**, puis sur **Apps**. Sélectionnez l'application dash-hello-world.

  2. Sous Synchroniser les fichiers , copiez la commande sous Synchroniser les modifications futures dans Databricks et exécutez-la depuis le dossier de votre projet d'application local :

    Bash
    databricks sync --watch . /Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_05-21_35/dash-hello-world-app
  3. Pour déployer l'application modifiée sur le compute, copiez la commande sous **Déployer sur Databricks Apps** sur la page de l'application et exécutez-la depuis votre dossier de projet d'application local :

    Bash
    databricks apps deploy dash-hello-world --source-code-path /Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_05-21_35/dash-hello-world-app

Si le déploiement est réussi, la commande génère un JSON de confirmation :

JSON
{
"create_time": "2025-12-06T01:30:16Z",
"creator": "someone@example.com",
"deployment_artifacts": {
"source_code_path": "/Workspace/Users/1234abcd-5678-90ab-cdef-123456abcdef/src/abcd1234efgh5678ijkl9012mnop3456"
},
"deployment_id": "abcd1234efgh5678ijkl9012mnop3456",
"mode": "SNAPSHOT",
"source_code_path": "/Workspace/Users/someone@example.com/databricks_apps/dash-hello-world_2025_12_05-21_35/dash-hello-world-app",
"status": {
"message": "App started successfully",s
"state": "SUCCEEDED"
},
"update_time": "2025-12-06T01:30:20Z"
}

Ressources supplémentaires