Entrainement
Module
Use Spark Notebooks in an Azure Synapse Pipeline - Training
This module describes how Apache Spark notebooks can be integrated into an Azure Synapse Analytics pipeline.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Outre les packages du niveau pool, vous pouvez spécifier des bibliothèques incluses dans l’étendue de la session au début d’une session de notebook. Les bibliothèques avec étendue de session vous permettent de spécifier et d’utiliser des packages Python, jar, et R dans une session de notebook.
Lorsque vous utilisez des bibliothèques avec étendue de session, il est important de garder à l’esprit les points suivants :
Pour spécifier des packages Python avec étendue de session :
Vous pouvez utiliser les commandes %pip et %conda populaires pour installer des bibliothèques tierces supplémentaires ou vos bibliothèques personnalisées pendant votre session de notebook Apache Spark. Dans cette section, nous utilisons les commandes %pip pour illustrer plusieurs scénarios courants.
Notes
Vous pouvez facilement installer une bibliothèque Python à partir de PyPI.
# Install vega_datasets
%pip install altair vega_datasets
Pour vérifier le résultat de l’installation, vous pouvez exécuter le code suivant pour visualiser vega_datasets
# Create a scatter plot
# Plot Miles per gallon against the horsepower across different region
import altair as alt
from vega_datasets import data
cars = data.cars()
alt.Chart(cars).mark_point().encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
).interactive()
Pour installer la bibliothèque à partir du stockage, vous devez monter dans votre compte de stockage en exécutant les commandes suivantes.
from notebookutils import mssparkutils
mssparkutils.fs.mount(
"abfss://<<file system>>@<<storage account>.dfs.core.windows.net",
"/<<path to wheel file>>",
{"linkedService":"<<storage name>>"}
)
Ensuite, vous pouvez utiliser la commande d’installation %pip pour installer le paquet wheel requis
%pip install /<<path to wheel file>>/<<wheel package name>>.whl
Vous pouvez utiliser la commande suivante pour voir quelle est la version intégrée de certains packages. Nous utilisons pandas comme exemple
%pip show pandas
Le résultat est le journal suivant :
Name: pandas
Version: **1.2.3**
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
... ...
Vous pouvez utiliser la commande suivante pour basculer pandas vers une autre version, par exemple 1.2.4
%pip install pandas==1.2.4
Si vous souhaitez désinstaller un package installé sur cette session de notebook, référez-vous aux commandes suivantes. Toutefois, vous ne pouvez pas désinstaller les packages intégrés.
%pip uninstall altair vega_datasets --yes
%pip install -r /<<path to requirement file>>/requirements.txt
Pour spécifier des packages Java ou Scala avec étendue de session, vous pouvez utiliser l’option %%configure
:
%%configure -f
{
"conf": {
"spark.jars": "abfss://<<file system>>@<<storage account>.dfs.core.windows.net/<<path to JAR file>>",
}
}
Notes
Les pools Azure Synapse Analytics incluent de nombreuses bibliothèques R populaires prêtes à l’emploi. Vous pouvez également installer des bibliothèques tierces supplémentaires pendant votre session de notebook Apache Spark.
Notes
Vous pouvez facilement installer une bibliothèque R à partir de CRAN.
# Install a package from CRAN
install.packages(c("nycflights13", "Lahman"))
Vous pouvez également utiliser des instantanés CRAN en tant que référentiel pour vous assurer de télécharger la même version du package à chaque fois.
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
La bibliothèque devtools
simplifie le développement de packages pour accélérer les tâches courantes. Cette bibliothèque est installée dans le runtime Azure Synapse Analytics par défaut.
Vous pouvez utiliser devtools
pour spécifier une version spécifique d’une bibliothèque à installer. Ces bibliothèques seront installées sur tous les nœuds du cluster.
# Install a specific version.
install_version("caesar", version = "1.0.0")
De même, vous pouvez installer une bibliothèque directement à partir de GitHub.
# Install a GitHub library.
install_github("jtilly/matchingR")
Actuellement, les fonctions devtools
suivantes sont prises en charge dans Azure Synapse Analytics :
Commande | Description |
---|---|
install_github() | Installe un package R à partir de GitHub |
install_gitlab() | Installe un package R à partir de GitLab |
install_bitbucket() | Installe un package R depuis Bitbucket |
install_url() | Installe un package R à partir d’une URL arbitraire |
install_git() | Installe à partir d’un référentiel Git arbitraire |
install_local() | Installe à partir d’un fichier local sur le disque |
install_version() | Installe à partir d’une version spécifique sur CRAN |
Vous pouvez interroger toutes les bibliothèques installées dans votre session à l’aide de la commande library
.
library()
Vous pouvez utiliser la fonction packageVersion
pour vérifier la version de la bibliothèque :
packageVersion("caesar")
Vous pouvez utiliser la fonction detach
pour supprimer une bibliothèque de l’espace de noms. Ces bibliothèques restent sur disque jusqu’à ce qu’elles soient chargées à nouveau.
# detach a library
detach("package: caesar")
Pour supprimer un package à l’étendue d’une session d’un notebook, utilisez la commande remove.packages()
. Cette modification de bibliothèque n’a aucun impact sur les autres sessions sur le même cluster. Les utilisateurs ne peuvent pas désinstaller ou supprimer des bibliothèques intégrées du runtime Azure Synapse Analytics par défaut.
remove.packages("caesar")
Notes
Vous ne pouvez pas supprimer de packages principaux comme SparkR, SparklyR ou R.
Des bibliothèques à l’étendue du notebook sont disponibles sur les workers SparkR.
install.packages("stringr")
library(SparkR)
str_length_function <- function(x) {
library(stringr)
str_length(x)
}
docs <- c("Wow, I really like the new light sabers!",
"That book was excellent.",
"R is a fantastic language.",
"The service in this restaurant was miserable.",
"This is neither positive or negative.")
spark.lapply(docs, str_length_function)
Avec spark_apply() dans SparklyR, vous pouvez utiliser n’importe quel package R à l’intérieur de Spark. Par défaut, dans sparklyr::spark_apply(), l’argument packages affecte la valeur FALSE. Cela copie les bibliothèques dans les libPaths actuels vers les Workers, ce qui vous permet de les importer et de les utiliser sur les Workers. Par exemple, vous pouvez exécuter ce qui suit pour générer un message chiffré en Caesar avec sparklyr::spark_apply() :
install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
spark_version <- "3.2"
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)
apply_cases <- function(x) {
library(caesar)
caesar("hello world")
}
sdf_len(sc, 5) %>%
spark_apply(apply_cases, packages=FALSE)
Entrainement
Module
Use Spark Notebooks in an Azure Synapse Pipeline - Training
This module describes how Apache Spark notebooks can be integrated into an Azure Synapse Analytics pipeline.