Gestire le librerie Apache Spark in Microsoft Fabric

Una libreria è una raccolta di codice prescritto che gli sviluppatori possono importare per fornire funzionalità. Usando le librerie, è possibile risparmiare tempo e impegno senza dover scrivere codice da zero per eseguire attività comuni. Importare invece la libreria e usare le relative funzioni e classi per ottenere la funzionalità desiderata. Microsoft Fabric offre più meccanismi che consentono di gestire e usare le librerie.

  • Librerie predefinite: ogni runtime di Fabric Spark offre un set completo di librerie preinstallate più diffuse. È possibile trovare l'elenco completo delle librerie predefinite in Fabric Spark Runtime.
  • Librerie pubbliche: le librerie pubbliche vengono generate da repository come PyPI e Conda, attualmente supportati.
  • Librerie personalizzate: le librerie personalizzate fanno riferimento al codice compilato dall'utente o dall'organizzazione. Fabric li supporta nei formati .whl, .jar e .tar.gz . Fabric supporta .tar.gz solo per il linguaggio R. Per le librerie personalizzate python, usare il formato .whl .

Impostazione della gestione delle librerie nell'area di lavoro

Importante

La gestione delle librerie nell'impostazione dell'area di lavoro non è più supportata. Per eseguire la migrazione delle librerie e delle proprietà dell'area di lavoro di Spark a un ambiente predefinito, vedere Eseguire la migrazione delle librerie dell'area di lavoro e delle proprietà di Spark.

Riepilogo delle procedure consigliate per la gestione delle librerie

Gli scenari seguenti descrivono le procedure consigliate.

Scenario 1: Amministrazione imposta le librerie predefinite per l'area di lavoro

Per impostare le librerie predefinite, è necessario essere l'amministratore dell'area di lavoro. L'amministratore può eseguire queste attività:

  1. Creare un nuovo ambiente
  2. Installare le librerie necessarie nell'ambiente
  3. Collegare questo ambiente come impostazione predefinita dell'area di lavoro

I notebook e le definizioni dei processi Spark nell'area di lavoro sono collegati alle impostazioni dell'area di lavoro. Iniziano le sessioni con le librerie installate nell'ambiente predefinito dell'area di lavoro.

Scenario 2: Rendere persistenti le specifiche della libreria per uno o più elementi di codice

Se si desidera rendere persistenti le specifiche della libreria, installare le librerie in un ambiente e allegarla agli elementi di codice.

Un vantaggio di questo approccio è che consente di risparmiare impegno nell'esecuzione del codice che richiede librerie comuni per tutto il tempo. Una volta installato correttamente nell'ambiente, le librerie sono valide in tutte le sessioni Spark se l'ambiente è collegato.

Un altro vantaggio è che l'approccio supporta la granularità della configurazione della libreria inferiore al livello dell'area di lavoro. Un ambiente può essere collegato a più artefatti di codice. Se si dispone di un subset di notebook o definizioni di processi Spark in un'area di lavoro che richiede le stesse librerie, collegarle allo stesso ambiente. Un amministratore, un membro o un collaboratore dell'area di lavoro può creare, modificare e collegare l'ambiente.

Scenario 3: Installazione inline in esecuzione interattiva

Se si è interessati all'uso monouso, all'interno di un notebook interattivo, di una libreria non installata, l'installazione inline è l'opzione più comoda. I comandi inline in Fabric consentono di avere la libreria effettiva nella sessione Spark del notebook corrente. La libreria non viene mantenuta in sessioni diverse.

Gli utenti che dispongono dell'autorizzazione per eseguire il notebook possono installare altre librerie nella sessione Spark.

Riepilogo dei tipi di libreria supportati

Tipo di libreria Gestione delle librerie di ambiente Installazione inline
Python Public (PyPI & Conda) Supportata Supportata
Python personalizzato (.whl) Supportata Supportata
R Public (CRAN) Non supportato Supportato
R personalizzato (.tar.gz) Supportata Supportata
Vaso Supportato come libreria personalizzata Non supportato

Importante

Esistono attualmente limitazioni per la libreria di .jar .

  • Per gli utenti di Scala, il file .jar può essere installato correttamente in un ambiente, ma non è efficace per le sessioni Spark/Scala. L'installazione esegue l'override della libreria predefinita con una libreria diversa. La nuova .jar funziona nelle sessioni.
  • Per gli utenti Python, tutti i file .jar non sono attualmente supportati in un ambiente. Possono essere installati correttamente in un ambiente, ma non sono efficaci nelle sessioni PySpark.
  • È invece possibile installare i file di .jar a livello di sessione del notebook.

Installazione inline

I comandi inline supportano librerie Python e librerie R.

Installazione inline di Python

L'interprete Python viene riavviato per applicare la modifica delle librerie. Tutte le variabili definite prima di eseguire la cella di comando andranno perse. È consigliabile inserire tutti i comandi per aggiungere, eliminare o aggiornare pacchetti Python all'inizio del notebook.

È consigliabile %pip anziché !pip. !pip è un comando della shell predefinito IPython, che presenta le limitazioni seguenti:

  • !pip installa solo un pacchetto nel nodo driver, non nei nodi executor.
  • I pacchetti installati tramite !pip non influiscono sui conflitti con i pacchetti predefiniti o sul fatto che i pacchetti siano già importati in un notebook.

Tuttavia, %pip gestisce questi scenari. Le librerie installate tramite %pip sono disponibili sia nei nodi driver che in quello dell'executor e sono ancora efficaci anche se la libreria è già importata.

Suggerimento

Il %conda install comando richiede in genere più tempo del %pip install comando per installare nuove librerie Python. Controlla le dipendenze complete e risolve i conflitti.

È possibile usare %conda install per maggiore affidabilità e stabilità. È possibile usare %pip install se si è certi che la libreria da installare non sia in conflitto con le librerie preinstallate nell'ambiente di runtime.

Per tutti i comandi inline e i chiarimenti di Python disponibili, vedere %pip comandi e %conda comandi.

Gestire le librerie pubbliche Python tramite l'installazione inline

In questo esempio, vedere come usare i comandi inline per gestire le librerie. Si supponga di voler usare altair, una potente libreria di visualizzazioni per Python, per un'esplorazione dei dati monouso. Si supponga che la libreria non sia installata nell'area di lavoro. Nell'esempio seguente vengono usati i comandi conda per illustrare i passaggi.

È possibile usare i comandi inline per abilitare altair nella sessione del notebook senza influire sulle altre sessioni del notebook o di altri elementi.

  1. Eseguire i comandi seguenti in una cella di codice del notebook. Il primo comando installa la libreria altair . Installare anche vega_datasets, che contiene un modello semantico che è possibile usare per visualizzare.

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

    L'output della cella indica il risultato dell'installazione.

  2. Importare il pacchetto e il modello semantico eseguendo il codice seguente in un'altra cella del notebook.

    import altair as alt
    from vega_datasets import data
    
  3. È ora possibile provare a usare la libreria altair con ambito sessione.

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

Gestire librerie personalizzate Python tramite l'installazione inline

È possibile caricare le librerie personalizzate Python nella cartella File del lakehouse collegato al notebook. Passare al lakehouse, selezionare l'icona ... nella cartella File e caricare la libreria personalizzata.

Dopo il caricamento, usare il comando seguente per installare la libreria personalizzata nella sessione del notebook.

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

Installazione inline di R

Per gestire le librerie R, Fabric supporta i install.packages()comandi , remove.packages()e devtools:: . Per tutti i comandi inline e i chiarimenti di R disponibili, vedere comando install.packages e comando remove.package.

Gestire le librerie pubbliche R tramite l'installazione inline

Seguire questo esempio per esaminare i passaggi dell'installazione di una libreria pubblica R.

Per installare una libreria di feed R:

  1. Passare il linguaggio di lavoro a SparkR (R) nella barra multifunzione del notebook.

  2. Installare la libreria caesar eseguendo il comando seguente in una cella del notebook.

    install.packages("caesar")
    
  3. È ora possibile provare a usare la libreria cesare con ambito sessione con un processo Spark.

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

Gestire le librerie Jar tramite l'installazione inline

I file .jar sono supportati nelle sessioni del notebook con il comando seguente.

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

La cella di codice usa l'archiviazione di Lakehouse come esempio. In Esplora notebook è possibile copiare il percorso ABFS completo del file e sostituirlo nel codice. Screenshot del percorso ABFS.