Développer, exécuter et gérer des notebooks Microsoft Fabric
Un notebook Microsoft Fabric est un élément de code principal pour le développement de travaux Apache Spark et d’expériences de Machine Learning. Il s’agit d’une surface interactive web utilisée par les scientifiques des données et les ingénieurs données pour écrire du code bénéficiant de visualisations enrichies et de texte Markdown. Cet article explique comment développer des notebooks avec des opérations de cellule de code et les exécuter.
Développer des notebooks
Les notebooks sont constitués de cellules qui sont des blocs individuels de code ou de texte qui peuvent être exécutés de façon indépendante ou en tant que groupe.
Nous proposons des opérations riches pour développer des notebooks :
- Ajouter une cellule
- Définir un langage principal
- Utiliser plusieurs langages
- IntelliSense de style IDE
- Extraits de code
- Glisser-déplacer pour insérer des extraits de code
- Glisser-déplacer pour insérer des images
- Mettre en forme une cellule de texte avec des boutons de barre d’outils
- Opération d’annulation/de rétablissement de cellule
- Déplacer une cellule
- Supprimer une cellule
- Réduire une entrée de cellule
- Réduire une sortie de cellule
- Sécurité de la sortie de cellule
- Verrouiller ou figer une cellule
- Contenu de Notebook
- Repli Markdown
- Rechercher et remplacer
Ajouter une cellule
Il existe plusieurs façons d’ajouter une cellule à un bloc-notes.
Placez le curseur sur l’espace entre deux cellules et sélectionnez Code ou Démarque.
Utilisez les touches de raccourci en mode de commande. Appuyez sur A pour insérer une cellule au-dessus de la cellule active. Appuyez sur B pour insérer une cellule en dessous de la cellule active.
Définir un langage principal
Les notebooks Fabric prennent actuellement en charge quatre langages Apache Spark :
- PySpark (Python)
- Spark (Scala)
- Spark SQL
- SparkR
Vous pouvez définir le langage principal des nouvelles cellules ajoutées dans la liste déroulante de la barre de commandes supérieure.
Utiliser plusieurs langages
Vous pouvez utiliser plusieurs langages dans un même notebook en spécifiant la commande magic du langage au début d’une cellule. Vous pouvez également changer le langage de la cellule à partir du sélecteur de langage. Le tableau suivant liste les commandes magic qui permettent de changer le langage des cellules.
Commande magic | Langage | Description |
---|---|---|
%%pyspark | Python | Exécuter une requête Python sur du contexte Apache Spark. |
%%spark | Scala | Exécuter une requête Scala sur du contexte Apache Spark. |
%%sql | SparkSQL | Exécuter une requête SparkSQL sur du contexte Apache Spark. |
%%html | Html | Exécuter une requête HTML sur du contexte Apache Spark. |
%%sparkr | R | Exécuter une requête R sur du contexte Apache Spark. |
IntelliSense de style IDE
Les notebooks Fabric sont intégrés à l’éditeur Monaco pour doter l’éditeur de cellule de la fonctionnalité IntelliSense de style IDE. La mise en surbrillance de la syntaxe, le marqueur d’erreurs et la complétion automatique de code vous aident à rapidement écrire du code et identifier les problèmes.
Les fonctionnalités IntelliSense sont à des niveaux de maturité différents pour les différents langages. Le tableau suivant indique ce que Fabric prend en charge :
Langues | Mise en surbrillance de la syntaxe | Marqueur des erreurs de syntaxe | Complétion de code de syntaxe | Complétion de code variable | Complétion de code de fonction système | Complétion de code de fonction utilisateur | Retrait intelligent | Pliage de code |
---|---|---|---|---|---|---|---|---|
PySpark (Python) | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
Spark (Scala) | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
SparkSQL | Oui | Oui | Oui | Oui | Oui | No | Oui | Oui |
SparkR | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
Remarque
Vous devez avoir une session Apache Spark active pour utiliser la complétion de code IntelliSense.
Extraits de code
Les notebooks Fabric fournissent des extraits de code qui vous aident à écrire facilement des modèles de code couramment utilisés, par exemple :
- Lecture de données sous forme de DataFrame Apache Spark
- Dessin de graphiques avec Matplotlib
Les extraits de code apparaissent dans Touches de raccourci d’IntelliSense style IDE en combinaison avec d’autres suggestions. Le contenu des extraits de code s’aligne sur le langage des cellules de code. Vous pouvez voir les extraits de code disponibles en tapant Extrait de code. Vous pouvez également taper n’importe quel mot clé pour voir une liste d’extraits de code pertinents. Par exemple, si vous tapez lire, vous pouvez voir la liste des extraits de code pour lire les données à partir de différentes sources de données.
Glisser-déplacer pour insérer des extraits de code
Utilisez le glisser-déposer pour lire facilement les données dans l’explorateur de lakehouse. Plusieurs types de fichier sont pris en charge ici. Vous pouvez utiliser des fichiers texte, des tableaux, des images, etc. Vous pouvez déposer les éléments dans une cellule existante ou dans une nouvelle cellule. Le notebook génère l’extrait de code en conséquence pour afficher un aperçu des données.
Glisser-déplacer pour insérer des images
Utilisez le glisser-déposer pour insérer facilement des images de votre navigateur ou de votre ordinateur local dans une cellule Markdown.
Mettre en forme une cellule de texte avec des boutons de barre d’outils
Pour effectuer des actions Markdown courantes, utilisez les boutons de mise en forme dans la barre d’outils des cellules de texte.
Opération d’annulation/de restauration de cellule
Sélectionnez Annuler ou Restaurer, ou appuyez sur Z ou Maj + Z pour révoquer les dernières opérations de cellule. Vous pouvez annuler ou restaurer les 10 dernières opérations de cellule de l’historique.
Opérations de cellule d’annulation prises en charge :
- Insérer ou supprimer une cellule. Vous pouvez révoquer les opérations de suppression en sélectionnant Annuler (le contenu de texte est conservé avec la cellule).
- Réorganiser la cellule.
- Basculer le paramètre.
- Effectuer une conversion entre une cellule de code et une cellule Markdown.
Remarque
Les opérations de texte dans les cellules et les opérations de commentaires des cellules de code ne peuvent pas être annulées. Vous pouvez annuler ou restaurer les 10 dernières opérations de cellule de l’historique.
Déplacer une cellule
Vous pouvez faire glisser à partir de la partie vide d’une cellule et la déposer à la position souhaitée.
Vous pouvez également déplacer la cellule sélectionnée à l’aide de Déplacer vers le haut et Déplacer vers le bas dans le ruban.
Supprimer une cellule
Pour supprimer une cellule, sélectionnez le bouton Supprimer à droite de la cellule.
Vous pouvez également utiliser des touches de raccourci en mode de commande. Appuyez sur Maj + D pour supprimer la cellule active.
Réduire une entrée de cellule
Sélectionnez les points de suspension Plus de commandes (…) dans la barre d’outils de la cellule et Masquer l’entrée pour réduire l’entrée de la cellule actuelle. Pour la développer à nouveau, sélectionnez Afficher l’entrée quand la cellule est réduite.
Réduire une sortie de cellule
Sélectionnez les points de suspension Plus de commandes (…) dans la barre d’outils de la cellule et Masquer la sortie pour réduire la sortie de la cellule actuelle. Pour la développer à nouveau, sélectionnez Afficher la sortie quand la sortie de cellule est réduite.
Sécurité de la sortie de cellule
En utilisant les rôles d’accès aux données de OneLake (aperçu), les utilisateurs peuvent configurer l’accès à seulement des dossiers spécifiques dans une cellule pendant les requêtes de notebook. Les utilisateurs qui n’ont pas accès à un dossier ou à une table verront une erreur « non autorisée » pendant l’exécution de la requête.
Important
La sécurité ne s’applique que pendant l’exécution de la requête et toutes les cellules du notebook contenant les résultats de la requête peuvent être visualisées par des utilisateurs qui ne sont pas autorisés à exécuter directement des requêtes sur les données.
Verrouiller ou figer une cellule
Les opérations de verrouillage et de blocage des cellules vous permettent de définir les cellules en lecture seule ou d’arrêter l’exécution des cellules de code de manière individuelle.
Fusionner et fractionner les cellules
Vous pouvez utiliser Fusionner avec la cellule précédente ou Fusionner avec la cellule suivante pour fusionner les cellules associées facilement.
La sélection de Fractionner la cellule vous permet de répartir des instructions non pertinentes sur plusieurs cellules. L’opération divise le code en fonction de la position de ligne de votre curseur.
Contenu de Notebook
La sélection de Structure ou Table des matières présente le premier en-tête Markdown d’une cellule Markdown dans une fenêtre latérale pour une navigation rapide. Vous pouvez redimensionner et réduire la barre latérale Structure pour qu’elle s’adapte au mieux à l’écran. Sélectionnez le bouton Contenu de la barre de commandes du notebook pour ouvrir ou masquer la barre latérale.
Repli Markdown
L’option de pliage Markdown vous permet de masquer des cellules sous une cellule Markdown qui contient un titre. La cellule markdown et ses cellules masquées sont traitées de la même façon qu’un ensemble de cellules contiguës multi-sélectionnées lors de l’exécution d’opérations de cellule.
Rechercher et remplacer
L’option Rechercher et remplacer peut vous aider à faire correspondre et localiser les mots clés ou l’expression dans le contenu de votre notebook. Vous pouvez également remplacer facilement la chaîne cible par une nouvelle chaîne.
Exécuter des blocs-notes
Vous pouvez exécuter les cellules de code dans votre bloc-notes individuellement ou toutes en même temps. L’état et la progression de chaque cellule sont représentés dans le notebook.
Exécuter une cellule
Il existe plusieurs façons d’exécuter le code figurant dans une cellule.
Pointez sur la cellule à exécuter, puis sélectionnez le bouton Exécuter la cellule ou appuyez sur Ctrl + Entrée.
Utilisez les touches de raccourci en mode de commande. Appuyez sur Maj + Entrée pour exécuter la cellule active et sélectionner la cellule suivante. Appuyez sur Alt + Entrée pour exécuter la cellule active et insérer une nouvelle cellule.
Exécuter toutes les cellules
Sélectionnez le bouton Tout exécuter pour exécuter toutes les cellules du notebook actuel dans l’ordre.
Exécuter toutes les cellules au-dessus ou en dessous
Développez la liste déroulante de Tout exécuter, puis sélectionnez Exécuter les cellules ci-dessus pour exécuter dans l’ordre toutes les cellules au-dessus de la cellule actuelle. Sélectionnez Exécuter les cellules en dessous pour exécuter la cellule actuelle et toutes les cellules sous la cellule active dans l’ordre.
Annuler toutes les cellules en cours d’exécution
Sélectionnez Tout annuler pour annuler les cellules en cours d’exécution ou les cellules de la file d’attente.
Arrêtez la session
Arrêter la session annule les cellules en cours d’exécution et en attente et arrête la session active. Vous pouvez redémarrer une toute nouvelle session en sélectionnant à nouveau l’option Exécuter.
Exécution de référence
Exécution de référence d'un notebook
En plus d’utiliser l’API d’exécution de référence notebookutils, vous pouvez également utiliser la commande magic %run <notebook name>
pour référencer un autre notebook dans le contexte du notebook actuel. Toutes les variables définies dans le notebook de référence sont disponibles dans le notebook actuel. La commande magic %run
prend en charge les appels imbriqués, mais pas les appels récursifs. Vous recevez une exception si la profondeur de l’instruction est supérieure à cinq.
Exemple : %run Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }
.
La référence de notebook fonctionne en mode interactif et en pipeline.
Remarque
- La commande
%run
prend actuellement uniquement en charge les notebook de référence dans le même espace de travail que le notebook actuel. - La commande
%run
prend actuellement uniquement en charge quatre types de valeur de paramètre maximum :int
,float
,bool
etstring
. L’opération de remplacement de variable n’est pas prise en charge. - La commande
%run
ne prend pas en charge les références imbriquées dont la profondeur est supérieure à cinq.
Exécution de référence d'un script
La commande %run
vous permet également d'exécuter des fichiers Python ou SQL stockés dans les ressources intégrées du notebook, afin de pouvoir exécuter facilement vos fichiers de code source dans le notebook.
%run [-b/--builtin -c/--current] [script_file.py/.sql] [variables ...]
Pour les options :
- -b/--builtin : cette option indique que la commande trouve et exécute le fichier script spécifié à partir des ressources intégrées du notebook.
- -c/--current : cette option garantit que la commande utilise toujours les ressources intégrées du notebook actuel, même si le notebook actuel est référencé par d'autres notebooks.
Exemples :
Pour exécuter script_file.py à partir des ressources intégrées :
%run -b script_file.py
Pour exécuter script_file.sql à partir des ressources intégrées :
%run -b script_file.sql
Pour exécuter script_file.py à partir des ressources intégrées avec des variables spécifiques :
%run -b script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }
Remarque
Si la commande ne contient pas -b/--builtin, elle tente de trouver et d'exécuter l'article de notebook dans le même espace de travail plutôt que les ressources intégrées.
Exemple d'utilisation pour le cas d'exécution imbriqué :
- Supposons que nous disposons de deux Notebook.
- Notebook1 : contient script_file1.py dans ses ressources intégrées
- Notebook2 : contient script_file2.py dans ses ressources intégrées
- Utilisons Notebook1 comme Notebook racine avec le contenu :
%run Notebook2
. - Ensuite, dans le Notebook2, l'instruction d'utilisation est la suivante :
- Pour exécuter script_file1.py dans Notebook1 (le Notebook racine), le code serait le suivant :
%run -b script_file1.py
- Pour exécuter script_file2.py dans Notebook2 (le Notebook actuel), le code serait le suivant :
%run -b -c script_file2.py
- Pour exécuter script_file1.py dans Notebook1 (le Notebook racine), le code serait le suivant :
Explorateur de variables
Les notebooks Fabric fournissent un explorateur de variables intégré qui affiche la liste des noms, des types, des longueurs et des valeurs des variables dans la session Spark actuelle pour les cellules PySpark (Python). D'autres variables apparaissent automatiquement à mesure qu'elles seront définies dans les cellules de code. Un clic sur chaque en-tête de colonne permet de trier les variables de la table.
Pour ouvrir et masquer l’explorateur de variables, sélectionnez Variables sous Afficher dans le ruban du notebook.
Remarque
L’explorateur de variables prend uniquement en charge Python.
Indicateur d’état de cellule
Un état d’exécution de cellule pas à pas est affiché sous la cellule pour vous aider à voir la progression en cours. Une fois l’exécution de la cellule terminée, un récapitulatif de l’exécution avec la durée totale et l’heure de fin s’affiche et reste disponible pour référence future.
Indicateur de travail Apache Spark inline
Le notebook Fabric est basé sur Apache Spark. Les cellules de code sont exécutées sur le cluster Apache Spark à distance. Un indicateur de progression du travail Spark est fourni avec une barre de progression en temps réel qui s’affiche pour vous aider à comprendre l’état d’exécution du travail. Le nombre de tâches par travail ou phase vous aide à identifier le niveau parallèle de votre travail Spark. Vous pouvez également explorer plus en profondeur l’IU Spark pour un travail (ou index) spécifique en sélectionnant le lien hypertexte du nom du travail (ou de l’index).
Vous trouverez également le journal en temps réel au niveau de la cellule en regard de l’indicateur de progression, et Diagnostics peut vous fournir des suggestions utiles pour vous aider à affiner et à déboguer le code.
Dans Autres actions, vous pouvez facilement accéder à la page des détails de l’application Spark et à la page d’interface utilisateur web Spark .
Rédaction des secrets
Pour éviter que les informations d’identification ne soient accidentellement divulguées pendant l’exécution de notebooks, les notebooks Fabric prennent en charge la Rédaction de secret pour remplacer les valeurs de secret affichées dans la sortie de cellule par [REDACTED]
. La rédaction de secret s’applique à Python, Scala et R.
Commandes magic dans un notebook
Commandes magic intégrées
Vous pouvez utiliser les commandes magic familières d'Ipython dans les carnets Fabric. Consultez la liste suivante des commandes magic actuellement disponibles.
Remarque
Seules les commandes magic suivantes sont prises en charge dans le pipeline Fabric : %%pyspark, %%spark, %%csharp, %%configure.
Commandes magic de ligne disponibles : %lsmagic, %time, %timeit, %history, %run, %load, %alias, %alias_magic, %autoawait, %autocall, %automagic, %bookmark, %cd, %colors, %dhist, %dirs, %doctest_mode, %killbgscripts, %load_ext, %logoff, %logon, %logstart, %logstate, %logstop, %magic, %matplotlib, %page, %pastebin, %pdef, %pfile, %pinfo, %pinfo2, %popd, %pprint, %precision, %prun, %psearch, %psource, %pushd, %pwd, %pycat, %quickref, %rehashx, %reload_ext, %reset, %reset_selective, %sx, %system, %tb, %unalias, %unload_ext, %who, %who_ls, %whos, %xdel, %xmode.
Le notebook Fabric prend également en charge les commandes de gestion de bibliothèque améliorées %pip et %conda. Pour plus d’informations sur l’utilisation, consultez Gérer les bibliothèques Apache Spark dans Microsoft Fabric.
Commandes magic de cellule disponibles : %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%configure, %%html, %%bash, %%markdown, %%perl, %%script, %%sh.
Commandes magic personnalisées
Vous pouvez également créer des commandes magic personnalisées pour répondre à vos besoins spécifiques. Voici un exemple :
Créez un notebook nommé « MyLakehouseModule ».
Dans un autre notebook, référencez « MyLakehouseModule » et ses commandes magic. Ce processus vous permet d’organiser facilement votre projet avec des notebooks qui utilisent différents langages.
Widgets IPython
Les widgets IPython sont des objets Python avec événements qui ont une représentation dans le navigateur. Vous pouvez utiliser les widgets IPython comme contrôles de code de base (par exemple, curseur ou zone de texte) dans votre notebook, tout comme le notebook Jupyter. Actuellement, il fonctionne uniquement dans un contexte Python.
Pour utiliser les widgets IPython
Commencez par importer le module ipywidgets pour utiliser le framework de widgets Jupyter.
import ipywidgets as widgets
Utilisez la fonction display de niveau supérieur pour afficher un widget, ou laissez une expression de type widget sur la dernière ligne de la cellule de code.
slider = widgets.IntSlider() display(slider)
Exécutez la cellule. Le widget s’affiche dans la zone de sortie.
slider = widgets.IntSlider() display(slider)
Utilisez plusieurs appels display() pour afficher plusieurs fois la même instance de widget. Ils restent synchronisés les uns avec les autres.
slider = widgets.IntSlider() display(slider) display(slider)
Pour afficher deux widgets indépendamment l’un de l’autre, créez deux instances de widget :
slider1 = widgets.IntSlider() slider2 = widgets.IntSlider() display(slider1) display(slider2)
Widgets pris en charge
Type de widgets | Widgets |
---|---|
Widgets numériques | IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText |
Widgets booléens | ToggleButton, Checkbox, Valid |
Widgets de sélection | Dropdown, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple |
Widgets de chaîne | Text, Text area, Combobox, Password, Label, HTML, HTML Math, Image, Button |
Widgets de lecture (animation) | Date picker, Color picker, Controller |
Widgets de conteneur ou disposition | Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked |
Limitations connues
Les widgets suivants ne sont pas encore pris en charge. Les solutions de contournement suivantes sont disponibles :
Fonctionnalités Solution de contournement Widget de sortie Vous pouvez utiliser la fonction imprimer() pour écrire du texte dans stdout. widgets.jslink() Vous pouvez utiliser la fonction widgets.link() pour lier deux widgets similaires. Widget FileUpload Pas encore pris en charge. La fonction display globale Fabric ne prend pas en charge l’affichage de plusieurs widgets dans un appel (par exemple, display(a, b)). Ce comportement diffère de celui de la fonction display IPython.
Si vous fermez un notebook qui contient un widget IPython, vous ne pouvez pas le voir ni interagir avec lui tant que vous ne réexécutez pas la cellule correspondante.
La fonction interact (ipywidgets.interact) n’est pas prise en charge.
Intégrer un notebook
Désigner une cellule de paramètres
Pour paramétrer votre notebook, sélectionnez le bouton de sélection (…) pour accéder au menu Plus de commandes au niveau de la barre d’outils de la cellule. Sélectionnez ensuite Activer/désactiver la cellule Paramètres pour désigner la cellule comme cellule de paramètre.
La cellule de paramètre est utile pour intégrer un notebook dans un pipeline. L'activité du pipeline recherche la cellule des paramètres et la considère comme la valeur par défaut des paramètres transmis au moment de l'exécution. Le moteur d’exécution a une nouvelle cellule sous la cellule des paramètres avec des paramètres d’entrée en vue de remplacer les valeurs par défaut.
Attribuer des valeurs de paramètres à partir d’un pipeline
Une fois que vous avez créé un notebook avec des paramètres, vous pouvez l’exécuter à partir d’un pipeline avec l’activité de notebook Fabric. Après avoir ajouté l’activité à votre canevas de pipeline, vous pouvez définir les valeurs des paramètres sous la section Paramètres de base de l’onglet Paramètres.
Quand vous attribuez des valeurs de paramètre, vous pouvez utiliser le langage d’expression du pipeline ou des fonctions et des variables.
Commande magic de configuration de session Spark
Vous pouvez personnaliser votre session Spark avec la commande magic %%configure. Le notebook Fabric prend en charge les propriétés Apache Spark personnalisées pour les vCores et la mémoire du pilote et de l’exécuteur, les points de montage, le pool et le lakehouse par défaut de la session de notebook. Ils peuvent être utilisés dans les activités de notebook interactives et de pipeline. Nous vous recommandons d’exécuter la commande %%configure au début de votre notebook, sinon vous devez redémarrer la session Spark pour que les paramètres prennent effet.
%%configure
{
// You can get a list of valid parameters to config the session from https://github.com/cloudera/livy#request-body.
"driverMemory": "28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g", "472g"]
"driverCores": 4, // Recommended values: [4, 8, 16, 32, 64, 80]
"executorMemory": "28g",
"executorCores": 4,
"jars": ["abfs[s]: //<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar", "wasb[s]: //<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
"conf":
{
// Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
"livy.rsc.sql.num-rows": "3000",
"spark.log.level": "ALL"
},
"defaultLakehouse": { // This overwrites the default lakehouse for current session
"name": "<lakehouse-name>",
"id": "<(optional) lakehouse-id>",
"workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
},
"mountPoints": [
{
"mountPoint": "/myMountPoint",
"source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
},
{
"mountPoint": "/myMountPoint1",
"source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
},
],
"environment": {
"id": "<environment-id>",
"name": "<environment-name>"
},
"sessionTimeoutInSeconds": 1200,
"useStarterPool": false, // Set to true to force using starter pool
"useWorkspacePool": "<workspace-pool-name>"
}
Remarque
- Nous vous recommandons de définir la même valeur pour « DriverMemory » et « ExecutorMemory » dans %%configure. Les valeurs « driverCores » et « executorCores » doivent également être identiques.
- Le « defaultLakehouse » remplace votre lakehouse épinglé dans l’explorateur de lakehouse, mais cela fonctionne uniquement dans votre session de notebook actuelle.
- Vous pouvez utiliser %%configure dans les pipelines Fabric, mais s’il n’est pas défini dans la première cellule de code, l’exécution de pipeline échoue parce qu’elle ne peut pas redémarrer la session.
- Quand la commande %%configure est utilisée dans notebookutils.notebook.run, elle est ignorée, mais le notebook continue de l’exécuter si elle est utilisée dans %run.
- Les propriétés de configuration Spark standard doivent être utilisées dans le corps « conf ». Fabric ne prend pas en charge la référence de premier niveau pour les propriétés de configuration Spark.
- Certaines propriétés Spark spéciales, y compris « spark.driver.cores », « spark.executor.cores », « spark.driver.memory », « spark.executor.memory » et « spark.executor.instances » ne sont pas prises en compte dans le corps « conf ».
Configuration de session paramétrisée à partir d’un pipeline
La configuration de session paramétrisée vous permet de remplacer la valeur dans la commande magic %%configure par les paramètres d’activité de notebook de l’exécution de pipeline. Lorsque vous préparez la cellule de code %%configure, vous pouvez remplacer les valeurs par défaut (également configurables, 4 et « 2000 » dans l’exemple ci-dessous) par un objet comme celui-ci :
{
"parameterName": "paramterNameInPipelineNotebookActivity",
"defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
}
%%configure
{
"driverCores":
{
"parameterName": "driverCoresFromNotebookActivity",
"defaultValue": 4
},
"conf":
{
"livy.rsc.sql.num-rows":
{
"parameterName": "rows",
"defaultValue": "2000"
}
}
}
Un notebook utilise la valeur par défaut si vous l’exécutez en mode interactif directement ou si l’activité de notebook de pipeline ne donne aucun paramètre correspondant à « activityParameterName ».
Pendant une exécution de pipeline, vous pouvez configurer les paramètres d’activité du notebook de pipeline de la façon suivante :
Si vous voulez changer la configuration de session, le nom des paramètres d’activité de notebook du pipeline doit être identique à parameterName
dans le notebook. Dans cet exemple d’exécution d’un pipeline, les driverCores
dans %%configure sont remplacés par 8, et les livy.rsc.sql.num-rows
sont remplacés par 4000.
Remarque
- Si l’exécution de pipeline échoue parce que vous avez utilisé la commande magic %%configure, recherchez plus d’informations sur l’erreur en exécutant la cellule magic %%configure dans le mode interactif du notebook.
- Les exécutions planifiées de notebook ne prennent pas en charge la configuration de session paramétrisée.
Journalisation de Python dans un notebook
Vous pouvez trouver les journaux Python et définir différents niveaux et formats de journaux comme dans l'exemple de code montré ici :
import logging
# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
handler.setFormatter(formatter)
# Customize log level for all loggers
logging.getLogger().setLevel(logging.INFO)
# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)
# logger that use the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")
# logger that use the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")
Afficher l’historique des commandes d’entrée
Le notebook Fabric prend en charge la commande magic %history
pour imprimer l’historique des commandes d’entrée qui s’est exécuté dans la session active, en comparant à la commande Jupyter Ipython standard, les travaux %history
pour plusieurs langages dans le contexte du notebook.
%history [-n] [range [range ...]]
Pour les options :
- -n : numéro d’exécution d’impression.
Où la plage peut être :
- N : imprimer le code de la cellule exécutée Nth.
- M-N : imprimer le code de Mth à la cellule exécutée Nth.
Exemple :
- Imprimer l’historique des entrées de la 1ère à la deuxième cellule exécutée :
%history -n 1-2
Touches de raccourci
Tout comme les notebooks Jupyter, les notebooks Fabric disposent d’une interface utilisateur modale. Le clavier effectue des actions différentes selon le mode dans lequel se trouve la cellule du bloc-notes. Les notebooks Fabric prennent en charge les deux modes suivants pour une cellule de code donnée : le mode de commande et le mode d’édition.
Une cellule est en mode commande quand elle n’y a pas de curseur de texte vous invitant à taper quelque chose. Quand une cellule est en mode de commande, vous pouvez modifier le bloc-notes entier, mais pas taper dans des cellules individuelles. Entrez en mode de commande en appuyant sur Echap ou en utilisant la souris pour sélectionner en dehors de la zone de l’éditeur d’une cellule.
Le mode d'édition peut être indiqué par un curseur de texte qui vous invite à taper dans la zone d'édition. Quand une cellule est en mode d’édition, vous pouvez saisir dans la cellule. Entrez en mode d’édition en appuyant sur Entrée ou en utilisant la souris pour sélectionner la zone de l’éditeur d’une cellule.
Touches de raccourci en mode de commande
Action | Raccourcis de notebook |
---|---|
Exécuter la cellule active et sélectionner la cellule en dessous | Maj + Entrée |
Exécuter la cellule active et insérer en dessous | Alt + Entrée |
Exécuter la cellule active | CTRL+ Enter |
Sélectionner la cellule au-dessus | Haut |
Sélectionner la cellule en dessous | Descendre |
Sélectionner la cellule précédente | K |
Sélectionner la cellule suivante | J |
Insérer une cellule au-dessus | Un |
Insérer une cellule en dessous | B |
Supprimer les cellules sélectionnées | Maj + D |
Basculer en mode d’édition | Entrez |
Touches de raccourci en mode d’édition
Les raccourcis clavier suivants vous permettent de naviguer et d’exécuter du code facilement dans les notebooks Fabric en mode d’édition.
Action | Raccourcis de notebook |
---|---|
Déplacer le curseur vers le haut | Haut |
Déplacer le curseur vers le bas | Descendre |
Annuler | Ctrl + Z |
Rétablir | CTRL + Y |
Commentaire ou annulation des commentaires | Ctrl + / Placer en commentaire : Ctrl+K+C Supprimer les marques de commentaire : Ctrl+K+U |
Supprimer le mot précédent | Ctrl + Retour arrière |
Supprimer le mot suivant | Ctrl + Suppr |
Atteindre le début de la cellule | Ctrl + Début |
Atteindre la fin de la cellule | Ctrl + Fin |
Atteindre le mot à gauche | CTRL + Gauche |
Atteindre le mot à droite | Ctrl + Droite |
Sélectionner tout | Ctrl + A |
Retrait | Ctrl + ] |
Retrait négatif | Ctrl + [ |
Passer en mode de commande | Échap |
Pour rechercher toutes les touches de raccourci, sélectionnez Afficher dans le ruban du notebook, puis sélectionnez Combinaisons de touches.