Gestire librerie Apache Spark in Microsoft Fabric
Una libreria è una raccolta di codice già scritto che gli sviluppatori possono importare per fornire funzionalità. Usando le librerie, è possibile risparmiare tempo e impegno per eseguire attività comuni senza dover scrivere codice da zero. 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 una ricca serie di librerie preinstallate più diffuse. È possibile trovare l'elenco completo delle librerie predefinite in Runtime di Fabric Spark.
- Librerie pubbliche: le librerie pubbliche provengono 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 Python personalizzate, usare il formato .whl.
Riepilogo delle procedure consigliate per la gestione delle librerie
Gli scenari seguenti descrivono le procedure consigliate quando si usano librerie in Microsoft Fabric.
Scenario 1: l'amministratore 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à:
- Creare un nuovo ambiente
- Installare le librerie richieste nell'ambiente
- Collegare questo ambiente come impostazione predefinita dell'area di lavoro
Quando i notebook e le definizioni dei processi Spark 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 sono presenti librerie comuni per elementi di codice diversi e non richiedono aggiornamenti frequenti, installare le librerie in un ambiente e collegarlo agli elementi di codice è una scelta ottimale.
L'efficacia delle librerie negli ambienti richiederà del tempo durante la pubblicazione. In genere sono necessari 5-15 minuti, a seconda della complessità delle librerie. Durante questo processo, il sistema contribuirà a risolvere i potenziali conflitti e scaricare le dipendenze necessarie.
Un vantaggio di questo approccio è che le librerie installate correttamente sono sicuramente disponibili quando la sessione Spark viene avviata con l'ambiente collegato. Consente di risparmiare impegno nella gestione di librerie comuni per i progetti.
È consigliabile per gli scenari di pipeline con la stabilità.
Scenario 3: installazione inline in esecuzione interattiva
Se si usano i notebook per scrivere codice in modo interattivo, usare l'installazione inline per aggiungere nuove librerie PyPI/conda o convalidare le librerie personalizzate per un uso monouso è la procedura consigliata. I comandi inline in Fabric consentono di avere la libreria effettiva nella sessione Spark del notebook corrente. Consente l'installazione rapida, ma la libreria installata non viene mantenuta in sessioni diverse.
Poiché %pip install
la generazione di diversi alberi delle dipendenze di volta in volta, che potrebbero causare conflitti di libreria, i comandi inline vengono disattivati per impostazione predefinita nelle esecuzioni della pipeline e NON è consigliabile usare nelle pipeline.
Riepilogo dei tipi di libreria supportati
Tipo di libreria | Gestione delle librerie dell’ambiente | Installazione inline |
---|---|---|
Python pubblico (PyPI e Conda) | Supportata | Supportata |
Python personalizzato (.whl) | Supportata | Supportata |
R pubblico (CRAN) | Non supportato | Supportata |
R personalizzato (.tar.gz) | Supportato come libreria personalizzata | Supportata |
Jar | Supportato come libreria personalizzata | Supportata |
Installazione inline
I comandi inline supportano la gestione delle librerie in ogni sessione di notebook.
Installazione inline di Python
Il sistema riavvia l'interprete Python per applicare la modifica delle librerie. Tutte le variabili definite prima di eseguire la cella di comando vengono perse. È consigliabile inserire tutti i comandi per aggiungere, eliminare o aggiornare pacchetti Python all'inizio del notebook.
I comandi inline per la gestione delle librerie Python sono disabilitati nell’esecuzione della pipeline del notebook per impostazione predefinita. Se si vuole abilitare %pip install
per la pipeline, aggiungere "_inlineInstallationEnabled" come parametro booleano uguale a True nei parametri dell'attività del notebook.
Nota
L'oggetto %pip install
può comportare di tanto in tanto risultati incoerenti. È consigliabile installare la libreria in un ambiente e usarla nella pipeline.
Nelle esecuzioni di riferimento dei notebook, i comandi inline per la gestione delle librerie Python non sono supportati. Per garantire la correttezza dell'esecuzione, è consigliabile rimuovere questi comandi inline dal notebook a cui si fa riferimento.
È consigliabile %pip
anziché !pip
.
!pip
è un comando della shell predefinita di IPython che presenta le limitazioni seguenti:
-
!pip
installa un pacchetto solo 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 nei nodi sia driver che executor e sono ancora efficaci anche se la libreria è già importata.
Suggerimento
Il comando %conda install
generalmente richiede più tempo del comando %pip install
per l’installazione di 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 chiarimenti e i comandi inline di Python disponibili, vedere Comandi %pip e Comandi %conda.
Gestire librerie pubbliche di Python tramite installazione inline
In questo esempio si vede come usare comandi inline per gestire le librerie. Si supponga di voler usare altair, una potente libreria di visualizzazioni per Python, per un'esplorazione dei dati una tantum. Si supponga che la libreria non sia installata nell'area di lavoro. Nell'esempio seguente vengono usati comandi conda per illustrare i passaggi.
È possibile usare comandi inline per abilitare altair nella sessione del notebook senza influire sulle altre sessioni del notebook o altri elementi.
Usare 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 la visualizzazione.
%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.
Importare il pacchetto e il modello semantico usando il codice seguente in un'altra cella del notebook.
import altair as alt from vega_datasets import data
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 di Python tramite installazione inline
È possibile caricare le librerie personalizzate Python nella cartella resources del notebook o nell'ambiente collegato. Le cartelle delle risorse sono il file system predefinito fornito da ogni notebook e ambiente. Per altri dettagli, vedere Risorse del notebook. Dopo il caricamento, è possibile trascinare la libreria personalizzata in una cella di codice, il comando inline per installare la libreria viene generato automaticamente. In alternativa, è possibile usare il comando seguente per installare.
# install the .whl through pip command from the notebook built-in folder
%pip install "builtin/wheel_file_name.whl"
Installazione inline di R
Per gestire le librerie di R, Fabric supporta i comandi install.packages()
, remove.packages()
e devtools::
. Per tutti i chiarimenti e i comandi inline di R disponibili, vedere il comando install.packages e il comando remove.package.
Gestire librerie pubbliche di R tramite installazione inline
Seguire questo esempio per esaminare i passaggi dell'installazione di una libreria pubblica di R.
Per installare una libreria di feed di R:
Passare il linguaggio di lavoro SparkR (R) nella barra multifunzione del notebook.
Installare la libreria caesar usando il comando seguente in una cella del notebook.
install.packages("caesar")
Ora è possibile provare a usare la libreria caesar 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 librerie Jar tramite 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.