Gérer les bibliothèques Apache Spark dans Microsoft Fabric
Une bibliothèque est une collection de codes pré-écrits que les développeurs peuvent importer pour fournir une fonctionnalité. L'utilisation de bibliothèques permet de gagner du temps et de réduire les efforts en évitant d'écrire du code à partir de zéro pour effectuer des tâches courantes. En revanche, il convient d'importer la bibliothèque et d'utiliser ses fonctions et ses classes pour atteindre la fonctionnalité souhaitée. Microsoft Fabric fournit plusieurs mécanismes pour vous aider à gérer et à utiliser les bibliothèques.
- Bibliothèques intégrées : chaque runtime Fabric Spark fournit un ensemble complet de bibliothèques préinstallées populaires. Vous trouverez la liste complète des bibliothèques prédéfinies dans Fabric Spark Runtime.
- Bibliothèques publiques : les bibliothèques publiques proviennent de dépôts tels que PyPI et Conda, actuellement pris en charge.
- Bibliothèques personnalisées : les bibliothèques personnalisées font référence au code que vous ou votre organisation créez. Fabric les prend en charge dans les formats .whl, .jar et .tar.gz. Fabric prend en charge .tar.gz uniquement pour le langage R. Pour les bibliothèques personnalisées Python, utilisez le format .whl.
Gestion de bibliothèques dans les paramètres de l’espace de travail
Important
La gestion des bibliothèques au niveau de l’espace de travail n’est plus prise en charge. Pour migrer les bibliothèques de l'espace de travail et les propriétés Spark vers un environnement par défaut, consultez Migrer les bibliothèques de l'espace de travail et les propriétés Spark.
Récapitulatif des bonnes pratiques de gestion des bibliothèques
Les scénarios suivants décrivent les meilleures pratiques.
Scénario 1 : l'administrateur définit les bibliothèques par défaut pour l'espace de travail
Pour définir les bibliothèques par défaut, vous devez être l'administrateur de l'espace de travail. En tant qu'administrateur, vous pouvez effectuer les tâches suivantes :
- Créer un environnement
- Installer les bibliothèques requises dans l'environnement
- Définir cet environnement comme espace de travail par défaut
Les Notebooks et les définitions du travail Spark dans l'espace de travail sont attachés aux paramètres de l'espace de travail. Ils démarrent les sessions avec les bibliothèques installées dans l'environnement par défaut de l'espace de travail.
Scénario 2 : conserver des spécifications de bibliothèque pour un ou plusieurs articles de code
Si vous souhaitez conserver les spécifications de la bibliothèque, installez les bibliothèques dans un environnement et attachez-les aux éléments de code.
L'un des avantages de cette approche est qu'elle permet d'éviter d'exécuter en permanence le code qui nécessite des bibliothèques communes. Une fois bien installées dans l'environnement, les bibliothèques sont efficaces dans toutes les sessions Spark si l'environnement est attaché.
Un autre avantage est que l'approche permet une granularité de configuration de la bibliothèque inférieure au niveau de l'espace de travail. Un même environnement peut être attaché à plusieurs artefacts de code. Si vous avez un sous-ensemble de notebooks ou de définitions de travail Spark dans un espace de travail qui nécessitent les mêmes bibliothèques, attachez-les au même environnement. Un administrateur, un membre ou un contributeur dans un espace de travail peut créer, modifier et attacher l'environnement.
Scénario 3 : installation incluse dans une exécution interactive
Si vous souhaitez utiliser une seule fois, dans un Notebook interactif, une bibliothèque qui n'est pas installée, l'installation incluse est l'option la plus pratique. Les commandes incluses de Fabric vous permettent de faire fonctionner la bibliothèque dans la session Spark du Notebook en cours. La bibliothèque ne persiste pas d'une session à l'autre.
Les utilisateurs qui sont autorisés à exécuter le Notebook peuvent installer d'autres bibliothèques dans la session Spark.
Récapitulatif des types de bibliothèque pris en charge
Type de la bibliothèque | Gestion des bibliothèques d’environnement | Installation incluse |
---|---|---|
Python Public (PyPI & Conda) | Prise en charge | Prise en charge |
Python personnalisé (.whl) | Prise en charge | Prise en charge |
R Public (CRAN) | Non pris en charge | Prise en charge |
R personnalisé (.tar.gz) | Prise en charge | Prise en charge |
Jar | Pris en charge en tant que bibliothèque personnalisée | Non pris en charge |
Important
La bibliothèque .jar est actuellement limitée.
- Pour les utilisateurs de Scala, le fichier .jar peut être facilement installé dans un environnement. Toutefois, il n'est pas efficace pour vos sessions Spark/Scala. L'installation remplace la bibliothèque prédéfinie par une autre bibliothèque. Le nouveau .jar fonctionne dans les sessions.
- Pour les utilisateurs Python, tous les fichiers .jar ne sont actuellement pas pris en charge dans un environnement. Ils peuvent facilement être installés dans un environnement, mais ils ne sont pas efficaces dans les sessions PySpark.
- Vous pouvez installer les fichiers .jar dans la session du Notebook par exemple.
Installation incluse
Les commandes incluses prennent en charge les bibliothèques Python et les bibliothèques R.
Installation incluse dans Python
L'interpréteur Python redémarre pour appliquer le changement de bibliothèques. Toutes les variables définies avant l'exécution de la cellule de commande sont perdues. Nous vous recommandons vivement de placer toutes les commandes d'ajout, de suppression ou de mise à jour des packages Python au début de votre Notebook.
Les commandes en ligne pour la gestion des bibliothèques Python sont désactivées par défaut dans l'exécution du pipeline notebook. Si vous souhaitez activer %pip install
pour le pipeline, ajoutez "_inlineInstallationEnabled" en tant que paramètre bool égal à True dans les paramètres de l'activité du notebook.
Remarque
Le %pip install
peut parfois donner des résultats incohérents. Il est recommandé d'installer la bibliothèque dans un environnement et de l'utiliser dans le pipeline.
Dans les exécutions de référence des notebooks, les commandes inline pour la gestion des bibliothèques Python ne sont pas prises en charge. Pour garantir l’exactitude de l’exécution, il est recommandé de supprimer ces commandes inline du notebook référencé.
Nous vous recommandons %pip
à la place de !pip
. !pip
est une commande shell prédéfinie dans IPython, qui présente les limitations suivantes :
!pip
n'installe de package que sur le nœud du gestionnaire, et non sur les nœuds de l'Exécuteur.- Les packages qui s'installent via
!pip
n'affectent pas les conflits avec les packages prédéfinis. De même, les packages qui sont déjà importés dans un Notebook ne sont pas affectés.
Toutefois, %pip
gère ces scénarios. Les bibliothèques installées via %pip
sont disponibles à la fois sur les nœuds du gestionnaire et de l'Exécuteur. Elles sont toujours actives même si la bibliothèque est déjà importée.
Conseil
La commande %conda install
prend généralement plus de temps que la commande %pip install
pour installer de nouvelles bibliothèques Python. Elle vérifie l'ensemble des dépendances et résout les conflits.
Vous pouvez utiliser %conda install
pour augmenter la fiabilité et la stabilité. Vous pouvez utiliser %pip install
si vous êtes sûr que la bibliothèque que vous souhaitez installer est compatible avec les bibliothèques préinstallées dans l'environnement runtime.
Pour toutes les commandes incluses et disponibles dans Python et toutes les précisions nécessaires, consultez Commandes %pip et Commandes %conda.
Gérer les bibliothèques publiques Python via l'installation incluse
Dans cet exemple, nous verrons comment utiliser les commandes incluses pour gérer les bibliothèques. Supposons que vous souhaitiez utiliser altair, une bibliothèque de visualisation puissante pour Python, pour une exploration de données ponctuelle. Supposons que la bibliothèque n'est pas installée dans votre espace de travail. L'exemple suivant utilise les commandes conda pour illustrer les étapes.
Vous pouvez utiliser des commandes incluses pour activer altair sur votre session de Notebook sans affecter les autres sessions du Notebook ou d'autres articles.
Exécutez les commandes suivantes dans une cellule de code du Notebook. La première commande installe la bibliothèque altair. Installez également vega_datasets, qui contient un modèle sémantique que vous pouvez utiliser pour visualiser.
%conda install altair # install latest version through conda command %conda install vega_datasets # install latest version through conda command
La production de la cellule indique le résultat de l'installation.
Importez le package et le modèle sémantique en exécutant le code suivant dans une autre cellule du Notebook.
import altair as alt from vega_datasets import data
Vous pouvez à présent reproduire la bibliothèque altair à l'échelle de la session.
# load a simple dataset as a pandas DataFrame cars = data.cars() alt.Chart(cars).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color='Origin', ).interactive()
Gérer les bibliothèques personnalisées Python grâce à l'installation incluse
Vous pouvez charger vos bibliothèques personnalisées Python dans le dossier Fichier du lakehouse attaché à votre notebook. Accédez à votre lakehouse, sélectionnez l’icône d’ellipses ... dans le dossier Fichier, puis chargez la bibliothèque personnalisée.
Après le téléchargement, utilisez la commande suivante pour installer la bibliothèque personnalisée dans votre session Notebook.
# install the .whl through pip command
%pip install /lakehouse/default/Files/wheel_file_name.whl
Installation incluse R
Pour gérer les bibliothèques R, Fabric prend en charge les commandes install.packages()
, remove.packages()
et devtools::
. Pour toutes les commandes incluses R disponibles et toutes les précisions nécessaires, consultez la commande install.packages et la commande remove.package.
Gérer les bibliothèques publiques R grâce à l'installation incluse
Suivez cet exemple pour découvrir les étapes de l'installation d'une bibliothèque publique R.
Pour installer une bibliothèque de flux R :
Changez la langue de travail en SparkR (R) dans le ruban du Notebook.
Installez la bibliothèque caesar en exécutant la commande suivante dans une cellule de Notebook.
install.packages("caesar")
Vous pouvez maintenant vous familiariser avec la bibliothèque caesar limitée à la session à l’aide d’un travail Spark.
library(SparkR) sparkR.session() hello <- function(x) { library(caesar) caesar(x) } spark.lapply(c("hello world", "good morning", "good evening"), hello)
Gérer les bibliothèques Jar via l'installation incluse
Les fichiers .jar sont pris en charge au niveau des sessions de notebook avec la commande suivante.
%%configure -f
{
"conf": {
"spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
}
}
La cellule de code utilise le stockage de Lakehouse comme exemple. Dans l'explorateur de Notebook, vous pouvez copier le chemin d'accès complet du fichier ABFS et le remplacer dans le code.