Prise en charge de Databricks Connect dans les Notebooks Databricks
Cet article couvre Databricks Connect pour Databricks Runtime 13.3 LTS et les versions ultérieures.
Databricks Connect vous permet de vous connecter au compute Databricks à partir d'un environnement de développement local en dehors de Databricks. Vous pouvez ensuite développer, déboguer et tester votre code directement depuis votre IDE avant de déplacer votre code vers un Notebook ou un Job dans Databricks. See Databricks Connect.
Portabilité
Afin de faciliter la transition du développement local au déploiement sur Databricks, toutes les API Databricks Connect sont disponibles dans les notebooks Databricks dans le cadre du Databricks Runtime correspondant. Cela vous permet d'exécuter votre code dans un Notebook Databricks sans aucune modification de votre code.
Comportement de la DatabricksSession
Le comportement de DatabricksSession diffère légèrement lors de l’utilisation de Databricks Connect dans un environnement de développement local et dans les notebooks et jobs du workspace Databricks.
Comportement de l'environnement de développement local
Lors de l'exécution de code localement dans un IDE en dehors de Databricks, DatabricksSession.builder.getOrCreate() obtient la session Spark existante pour la configuration fournie si elle existe, ou crée une nouvelle session Spark si elle n'existe pas. DatabricksSession.builder.create() crée toujours une nouvelle session Spark. Les paramètres de connexion, tels que host, token et cluster_id, sont renseignés à partir du code source, des variables d'environnement ou du fichier de profils de configuration .databrickscfg.
En d'autres termes, lorsqu'il est exécuté à l'aide de Databricks Connect, le code suivant crée deux sessions distinctes :
spark1 = DatabricksSession.builder.create()
spark2 = DatabricksSession.builder.create()
Comportement du workspace Databricks
Lors de l'exécution de code dans un Notebook ou un Job dans le Workspace Databricks, DatabricksSession.builder.getOrCreate() renvoie la session Spark par default (également accessible via la variable spark) lorsqu'elle est utilisée sans configuration supplémentaire. La variable spark est préconfigurée pour se connecter à l'instance de compute à laquelle le Notebook ou le Job est attaché. Une nouvelle session Spark est créée si des paramètres de connexion supplémentaires sont définis, par exemple, en utilisant DatabricksSession.builder.clusterId(...).getOrCreate() ou DatabricksSession.builder.serverless().getOrCreate().
DatabricksSession.builder.create() nécessite des paramètres de connexion explicites dans un Notebook, tels que DatabricksSession.builder.clusterId(...).create(), sinon elle renvoie une erreur [UNSUPPORTED].
Il est possible d'utiliser Databricks Connect pour se connecter au compute Databricks qui n'est pas attaché au Notebook ou au Job à l'aide de remote(), qui prend une configuration kwargs ou les méthodes de configuration individuelles, telles que host() ou token(). Dans ces cas, une nouvelle session est créée pour le compute référencé, similaire à son utilisation en dehors d'un Notebook ou d'un Job Databricks.
Pour les Notebooks exécutés sur du compute Serverless, le délai d’expiration des queries est de 9 000 secondes par default. Vous pouvez personnaliser cela en définissant la propriété de configuration Spark spark.databricks.execution.timeout. Voir Définir les propriétés de configuration Spark sur Databricks.