Delen via


Pakketten met sessiebereik beheren

Naast pakketten op groepsniveau kunt u aan het begin van een notebooksessie ook bibliotheken met sessiebereik opgeven. Met bibliotheken met sessiebereik kunt u Python-, JAR- en R-pakketten opgeven en gebruiken binnen een notebooksessie.

Wanneer u bibliotheken met sessiebereik gebruikt, is het belangrijk om rekening te houden met de volgende punten:

  • Wanneer u bibliotheken met sessiebereik installeert, heeft alleen het huidige notitieblok toegang tot de opgegeven bibliotheken.
  • Deze bibliotheken hebben geen invloed op andere sessies of taken die dezelfde Spark-pool gebruiken.
  • Deze bibliotheken worden geïnstalleerd boven op de basis-runtime- en poolniveaubibliotheken en hebben de hoogste prioriteit.
  • Sessiebibliotheken blijven niet behouden tussen sessies.

Python-pakketten met sessiebereik

Python-pakketten met sessiebereik beheren via het bestand environment.yml

Python-pakketten met sessiebereik opgeven:

  1. Navigeer naar de geselecteerde Spark-pool en zorg ervoor dat u bibliotheken op sessieniveau hebt ingeschakeld. U kunt deze instelling inschakelen door te navigeren naar het tabbladApache Spark-poolpakketten>beheren>. Schermopname van het inschakelen van sessiepakketten.
  2. Zodra de instelling van toepassing is, kunt u een notebook openen enSessiepakketten>configurerenselecteren. Schermopname van het opgeven van sessiepakketten. Schermopname van het uploaden van het Yml-bestand.
  3. Hier kunt u een Conda environment.yml-bestand uploaden om pakketten binnen een sessie te installeren of te upgraden. De opgegeven bibliotheken zijn aanwezig zodra de sessie wordt gestart. Deze bibliotheken zijn niet meer beschikbaar nadat de sessie is beëindigd.

Python-pakketten met sessiebereik beheren via %pip- en %conda-opdrachten

U kunt de populaire opdrachten %pip en %conda gebruiken om aanvullende bibliotheken van derden of uw aangepaste bibliotheken te installeren tijdens uw Apache Spark-notebooksessie. In deze sectie gebruiken we %pip-opdrachten om verschillende veelvoorkomende scenario's te demonstreren.

Notitie

  • U wordt aangeraden de opdrachten %pip en %conda in de eerste cel van uw notebook te plaatsen als u nieuwe bibliotheken wilt installeren. De Python-interpreter wordt opnieuw gestart nadat de bibliotheek op sessieniveau is beheerd om de wijzigingen van kracht te laten worden.
  • Deze opdrachten voor het beheren van Python-bibliotheken worden uitgeschakeld bij het uitvoeren van pijplijntaken. Als u een pakket in een pijplijn wilt installeren, moet u gebruikmaken van de mogelijkheden voor bibliotheekbeheer op groepsniveau.
  • Python-bibliotheken met sessiebereik worden automatisch geïnstalleerd op zowel de stuurprogramma- als werkknooppunten.
  • De volgende %conda-opdrachten worden niet ondersteund: maken, opschonen, vergelijken, activeren, deactiveren, uitvoeren, verpakken.
  • Raadpleeg %pip-opdrachten en %conda-opdrachten voor de volledige lijst met opdrachten.

Een pakket van derden installeren

U kunt eenvoudig een Python-bibliotheek installeren vanuit PyPI.

# Install vega_datasets
%pip install altair vega_datasets

Als u het installatieresultaat wilt controleren, kunt u de volgende code uitvoeren om vega_datasets te visualiseren

# 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()

Een wielpakket installeren vanuit een opslagaccount

Als u de bibliotheek vanuit de opslag wilt installeren, moet u koppelen aan uw opslagaccount door de volgende opdrachten uit te voeren.

from notebookutils import mssparkutils  
 
mssparkutils.fs.mount(  
    "abfss://<<file system>>@<<storage account>.dfs.core.windows.net",  
    "/<<path to wheel file>>",  
    {"linkedService":"<<storage name>>"}  
) 

En vervolgens kunt u de % pip install-opdracht gebruiken om het vereiste wheel-pakket te installeren

%pip install /<<path to wheel file>>/<<wheel package name>>.whl

Een andere versie van de ingebouwde bibliotheek installeren

U kunt de volgende opdracht gebruiken om te zien wat de ingebouwde versie van een bepaald pakket is. We gebruiken pandas als voorbeeld

%pip show pandas

Het resultaat is als volgt:

Name: pandas
Version: **1.2.3**
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
... ...

U kunt de volgende opdracht gebruiken om pandas over te schakelen naar een andere versie, bijvoorbeeld 1.2.4

%pip install pandas==1.2.4

Een bibliotheek met sessiebereik verwijderen

Als u een pakket wilt verwijderen dat op deze notebooksessie is geïnstalleerd, kunt u de volgende opdrachten raadplegen. U kunt de ingebouwde pakketten echter niet verwijderen.

%pip uninstall altair vega_datasets --yes

De opdracht %pip gebruiken om bibliotheken te installeren vanuit een requirement.txt-bestand

%pip install -r  /<<path to requirement file>>/requirements.txt

Java- of Scala-pakketten met sessiebereik

Als u Java- of Scala-pakketten met sessiebereik wilt opgeven, kunt u de %%configure optie gebruiken:

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<file system>>@<<storage account>.dfs.core.windows.net/<<path to JAR file>>",
    }
}

Notitie

  • We raden u aan om de %%-configuratie aan het begin van uw notebook uit te voeren. Raadpleeg dit document voor de volledige lijst met geldige parameters.

R-pakketten met sessiebereik (preview)

Azure Synapse Analytics-pools bevatten veel populaire R-bibliotheken. U kunt ook extra bibliotheken van derden installeren tijdens uw Apache Spark-notebooksessie.

Notitie

  • Deze opdrachten voor het beheren van R-bibliotheken worden uitgeschakeld bij het uitvoeren van pijplijntaken. Als u een pakket in een pijplijn wilt installeren, moet u gebruikmaken van de mogelijkheden voor bibliotheekbeheer op groepsniveau.
  • R-bibliotheken met sessiebereik worden automatisch geïnstalleerd op zowel de stuurprogramma- als werkknooppunten.

Een pakket installeren

U kunt eenvoudig een R-bibliotheek van CRAN installeren.

# Install a package from CRAN
install.packages(c("nycflights13", "Lahman"))

U kunt ook CRAN-momentopnamen als opslagplaats gebruiken om ervoor te zorgen dat u elke keer dezelfde pakketversie downloadt.

install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

Devtools gebruiken om pakketten te installeren

De devtools bibliotheek vereenvoudigt het ontwikkelen van pakketten om veelvoorkomende taken te versnellen. Deze bibliotheek wordt geïnstalleerd binnen de standaard Azure Synapse Analytics-runtime.

U kunt gebruiken devtools om een specifieke versie van een bibliotheek op te geven die moet worden geïnstalleerd. Deze bibliotheken worden geïnstalleerd op alle knooppunten in het cluster.

# Install a specific version. 
install_version("caesar", version = "1.0.0") 

Op dezelfde manier kunt u een bibliotheek rechtstreeks vanuit GitHub installeren.

# Install a GitHub library. 

install_github("jtilly/matchingR") 

Momenteel worden de volgende devtools functies ondersteund in Azure Synapse Analytics:

Opdracht Beschrijving
install_github() Installeert een R-pakket vanuit GitHub
install_gitlab() Een R-pakket installeren vanuit GitLab
install_bitbucket() Installeert een R-pakket van BitBucket
install_url() Installeert een R-pakket vanaf een willekeurige URL
install_git() Installaties vanuit een willekeurige Git-opslagplaats
install_local() Installaties vanaf een lokaal bestand op schijf
install_version() Installeert vanuit een specifieke versie op CRAN

Geïnstalleerde bibliotheken weergeven

U kunt een query uitvoeren op alle bibliotheken die in uw sessie zijn geïnstalleerd met behulp van de library opdracht .

library()

U kunt de packageVersion functie gebruiken om de versie van de bibliotheek te controleren:

packageVersion("caesar")

Een R-pakket verwijderen uit een sessie

U kunt de detach functie gebruiken om een bibliotheek uit de naamruimte te verwijderen. Deze bibliotheken blijven op schijf totdat ze opnieuw worden geladen.

# detach a library

detach("package: caesar")

Als u een pakket met sessiebereik uit een notebook wilt verwijderen, gebruikt u de remove.packages() opdracht . Deze bibliotheekwijziging heeft geen invloed op andere sessies in hetzelfde cluster. Gebruikers kunnen geen ingebouwde bibliotheken van de standaard-Azure Synapse Analytics-runtime verwijderen of verwijderen.

remove.packages("caesar")

Notitie

U kunt kernpakketten zoals SparkR, SparklyR of R niet verwijderen.

R-bibliotheken met sessiebereik en SparkR

Notebook-scoped bibliotheken zijn beschikbaar op SparkR-werkrollen.

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)

R-bibliotheken met sessiebereik en SparklyR

Met spark_apply() in SparklyR kunt u elk R-pakket in Spark gebruiken. In sparklyr::spark_apply() wordt het argument packages standaard ingesteld op FALSE. Hiermee kopieert u bibliotheken in de huidige libPaths naar de werkrollen, zodat u deze kunt importeren en gebruiken op werkrollen. U kunt bijvoorbeeld het volgende uitvoeren om een met caesar versleuteld bericht te genereren met 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)

Volgende stappen