Hantera Apache Spark-bibliotek i Microsoft Fabric

Ett bibliotek är en samling förskriven kod som utvecklare kan importera för att tillhandahålla funktioner. Genom att använda bibliotek kan du spara tid och arbete genom att inte behöva skriva kod från grunden för att utföra vanliga uppgifter. Importera i stället biblioteket och använd dess funktioner och klasser för att uppnå önskad funktionalitet. Microsoft Fabric innehåller flera mekanismer som hjälper dig att hantera och använda bibliotek.

  • Inbyggda bibliotek: Varje Fabric Spark-körning ger en omfattande uppsättning populära förinstallerade bibliotek. Du hittar den fullständiga inbyggda bibliotekslistan i Fabric Spark Runtime.
  • Offentliga bibliotek: Offentliga bibliotek kommer från lagringsplatser som PyPI och Conda, som för närvarande stöds.
  • Anpassade bibliotek: Anpassade bibliotek refererar till kod som du eller din organisation skapar. Fabric stöder dem i formaten .whl, .jar och .tar.gz . Infrastrukturresurser stöder endast .tar.gz för R-språket. För anpassade Python-bibliotek använder du formatet .whl .

Bibliotekshantering i arbetsyteinställning

Viktigt!

Bibliotekshantering på arbetsytan stöds inte längre. Information om hur du migrerar arbetsytebibliotek och Spark-egenskaper till en standardmiljö finns i Migrera arbetsytebibliotek och Spark-egenskaper.

Sammanfattning av metodtips för bibliotekshantering

I följande scenarier beskrivs metodtips.

Scenario 1: Administratör anger standardbibliotek för arbetsytan

Om du vill ange standardbibliotek måste du vara administratör för arbetsytan. Som administratör kan du utföra följande uppgifter:

  1. Skapa en ny miljö
  2. Installera de bibliotek som krävs i miljön
  3. Bifoga den här miljön som standard för arbetsytan

Notebook-filerna och Spark-jobbdefinitionerna på arbetsytan är kopplade till inställningarna för arbetsytan. De startar sessioner med biblioteken installerade i arbetsytans standardmiljö.

Scenario 2: Spara biblioteksspecifikationer för ett eller flera kodobjekt

Om du vill spara biblioteksspecifikationerna installerar du biblioteken i en miljö och kopplar det till kodobjekten.

En fördel med den här metoden är att den sparar arbete med att köra koden som kräver vanliga bibliotek hela tiden. När de har installerats i miljön är biblioteken effektiva i alla Spark-sessioner om miljön är ansluten.

En annan fördel är att metoden stöder bibliotekskonfigurationskornighet som är lägre än arbetsytans nivå. En miljö kan kopplas till flera kodartefakter. Om du har en delmängd notebook-filer eller Spark-jobbdefinitioner på en arbetsyta som kräver samma bibliotek kopplar du dem till samma miljö. En administratör, medlem eller deltagare i arbetsytan kan skapa, redigera och bifoga miljön.

Scenario 3: Infogad installation i interaktiv körning

Om du är intresserad av engångsanvändning i en interaktiv notebook-fil för ett bibliotek som inte är installerat är infogad installation det mest praktiska alternativet. Med infogade kommandon i Infrastruktur kan du ha biblioteket effektivt i den aktuella Spark-sessionen för notebook-filer. Biblioteket bevaras inte mellan olika sessioner.

Användare som har behörighet att köra notebook-filen kan installera andra bibliotek i Spark-sessionen.

Sammanfattning av bibliotekstyper som stöds

Bibliotekstyp Hantering av miljöbibliotek Infogad installation
Python Public (PyPI & Conda) Stöds Stöds
Anpassad Python (.whl) Stöds Stöds
R Public (CRAN) Stöds inte Stöds
Anpassad R (.tar.gz) Stöds Stöds
Burk Stöds som anpassat bibliotek Stöds inte

Viktigt!

Det finns för närvarande begränsningar för .jar-biblioteket.

  • För Scala-användare kan .jar-filen installeras i en miljö, men den är inte effektiv för spark-/scala-sessioner. Installationen åsidosätter det inbyggda biblioteket med ett annat bibliotek. Den nya .jar fungerar i sessionerna.
  • För Python-användare stöds för närvarande inte alla .jar filer i en miljö. De kan installeras i en miljö men är inte effektiva i PySpark-sessioner.
  • Du kan installera .jar-filerna på notebook-sessionsnivå i stället.

Infogad installation

Infogade kommandon stöder Python-bibliotek och R-bibliotek.

Infogad Python-installation

Python-tolken startas om för att tillämpa biblioteksändringen. Alla variabler som definierats innan du kör kommandocellen går förlorade. Vi rekommenderar starkt att du lägger till alla kommandon för att lägga till, ta bort eller uppdatera Python-paket i början av notebook-filen.

De infogade kommandona för att hantera Python-bibliotek är inaktiverade i notebook-pipeline som körs som standard. Om du vill aktivera %pip install för pipeline lägger du till "_inlineInstallationEnabled" som boolparameter lika med Sant i notebook-aktivitetsparametrarna.

Skärmbild som visar konfigurationen av aktivering av pip-installation för notebook-pipelinekörning.

Kommentar

%pip install Kan leda till inkonsekventa resultat då och då. Vi rekommenderar att du installerar biblioteket i en miljö och använder det i pipelinen. I notebook-referenskörningar stöds inte infogade kommandon för att hantera Python-bibliotek. För att säkerställa att körningen är korrekt rekommenderar vi att du tar bort dessa infogade kommandon från den refererade notebook-filen.

Vi rekommenderar %pip i stället för !pip. !pip är ett inbyggt IPython-kommando som har följande begränsningar:

  • !pip installerar endast ett paket på drivrutinsnoden, inte körnoder.
  • Paket som installeras via !pip påverkar inte konflikter med inbyggda paket eller om paket redan har importerats i en notebook-fil.

Hanterar dock %pip dessa scenarier. Bibliotek som installeras via %pip är tillgängliga på både drivrutins- och körnoder och är fortfarande effektiva även om biblioteket redan har importerats.

Dricks

Kommandot %conda install tar vanligtvis längre tid än %pip install kommandot för att installera nya Python-bibliotek. Den kontrollerar de fullständiga beroendena och löser konflikter.

Du kanske vill använda %conda install för mer tillförlitlighet och stabilitet. Du kan använda %pip install om du är säker på att det bibliotek som du vill installera inte står i konflikt med de förinstallerade biblioteken i körningsmiljön.

Alla tillgängliga kommandon och förtydliganden i Python finns i %pip-kommandon och %conda-kommandon.

Hantera offentliga Python-bibliotek via infogad installation

I det här exemplet kan du se hur du använder infogade kommandon för att hantera bibliotek. Anta att du vill använda altair, ett kraftfullt visualiseringsbibliotek för Python, för en engångsdatautforskning. Anta att biblioteket inte är installerat på din arbetsyta. I följande exempel används conda-kommandon för att illustrera stegen.

Du kan använda infogade kommandon för att aktivera altair i notebook-sessionen utan att påverka andra sessioner i notebook-filen eller andra objekt.

  1. Kör följande kommandon i en notebook-kodcell. Det första kommandot installerar altair-biblioteket . Installera även vega_datasets, som innehåller en semantisk modell som du kan använda för att visualisera.

    %conda install altair          # install latest version through conda command
    %conda install vega_datasets   # install latest version through conda command
    

    Cellens utdata anger resultatet av installationen.

  2. Importera paketet och semantikmodellen genom att köra följande kod i en annan notebook-cell.

    import altair as alt
    from vega_datasets import data
    
  3. Nu kan du leka med altair-biblioteket med sessionsomfattning.

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

Hantera anpassade Python-bibliotek via infogad installation

Du kan ladda upp dina anpassade Python-bibliotek till mappen Arkiv i lakehouse som är kopplad till anteckningsboken. Gå till ditt lakehouse, välj ikonen ... i mappen Arkiv och ladda upp det anpassade biblioteket.

Efter uppladdningen använder du följande kommando för att installera det anpassade biblioteket i notebook-sessionen.

# install the .whl through pip command
%pip install /lakehouse/default/Files/wheel_file_name.whl             

Infogad R-installation

För att hantera R-bibliotek har Fabric stöd för kommandona install.packages(), remove.packages()och devtools:: . Alla tillgängliga R-infogade kommandon och förtydliganden finns i kommandot install.packages och kommandot remove.package.

Hantera offentliga R-bibliotek via infogad installation

Följ det här exemplet om du vill gå igenom stegen för att installera ett offentligt R-bibliotek.

Så här installerar du ett R-feedbibliotek:

  1. Växla arbetsspråket till SparkR (R) i notebook-menyfliksområdet.

  2. Installera Caesar-biblioteket genom att köra följande kommando i en notebook-cell.

    install.packages("caesar")
    
  3. Nu kan du leka med caesarbiblioteket med sessionsomfattning med ett Spark-jobb.

    library(SparkR)
    sparkR.session()
    
    hello <- function(x) {
    library(caesar)
    caesar(x)
    }
    spark.lapply(c("hello world", "good morning", "good evening"), hello)
    

Hantera Jar-bibliotek via infogad installation

De .jar filerna stöds vid notebook-sessioner med följande kommando.

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
    }
}        

Kodcellen använder Lakehouses lagring som exempel. I notebook-utforskaren kan du kopiera den fullständiga ABFS-sökvägen och ersätta den i koden. Skärmbild av hämta ABFS-sökvägen.