Condividi tramite


Gestire le librerie in ambienti Fabric

Microsoft Fabric ambienti offrono una configurazione flessibile per l'esecuzione di processi Spark. Le librerie forniscono codice riutilizzabile per notebook e definizioni di processi Spark. Oltre alle librerie predefinite fornite con ogni runtime di Spark, è possibile installare librerie pubbliche e personalizzate in ambienti Fabric.

Nota

Passare all'area di lavoro in cui si trova l'ambiente, selezionare le opzioni di gestione dell'ambiente e della libreria nel riquadro di spostamento a sinistra. Se non è stato creato un ambiente, vedere Creare, configurare e usare un ambiente in Fabric.

Librerie predefinite

In Fabric, ogni versione di runtime è dotata di un set selezionato di librerie integrate, ottimizzate per prestazioni, compatibilità e sicurezza con Python, R, Java e Scala. La pagina Librerie predefinite nell'ambiente consente di esplorare e cercare queste librerie preinstallate in base al runtime selezionato.

Queste librerie vengono installate per impostazione predefinita in ogni ambiente e non possono essere modificate. Saranno disponibili se si esegue il notebook o la definizione del processo Spark in questo ambiente.

Per visualizzare l'elenco dei pacchetti preinstallati e delle relative versioni per ogni runtime, vedere Runtime di SparkApache in Fabric.

Nota

Gli approcci per notebook, come la cartella Risorse del notebook e i comandi di installazione inline (ad esempio, %pip install o %conda install in una cella di codice), sono eseguiti manualmente, con ambito di sessione o ambito per notebook e non sono influenzati dalla pubblicazione dell'ambiente. Usarli per aggiungere rapidamente librerie occasionali durante lo sviluppo interattivo.

Importante

Fabric supporta diversi modi per gestire i pacchetti. Per altre opzioni e migliori pratiche, vedere Gestire le librerie Apache Spark in Fabric. Se l'area di lavoro usa funzionalità di rete come la protezione dell'accesso in uscita dell'area di lavoro o le reti virtuali gestite, l'accesso ai repository pubblici, ad esempio PyPI, viene bloccato. Per indicazioni, vedere Gestire librerie con accesso di rete limitato in Fabric. Se le versioni della libreria predefinite non soddisfano le proprie esigenze, è possibile eseguirne l'override specificando la versione desiderata nella sezione del repository esterno o caricando i propri pacchetti personalizzati.

Repository esterni

È possibile aggiungere librerie da repository pubblici come PyPI, Conda e Maven o da repository privati. Le opzioni della modalità di origine e pubblicazione variano a seconda del tipo di repository. Quando si aggiunge una libreria, si seleziona una modalità di pubblicazione (completa o rapida). Per informazioni dettagliate sul funzionamento di ogni modalità, vedere Selezionare la modalità di pubblicazione per le librerie.

Screenshot che mostra la schermata delle librerie dei repository esterni dell'ambiente.

Aggiungere una libreria da un repository di Python pubblico

I repository pubblici consentono di installare pacchetti da PyPI o Conda.

  1. Nella scheda Repository esterni selezionare Aggiungi libreria.

  2. Selezionare Aggiungi libreria dal repository pubblico.

  3. Selezionare l'origine (PyPI o Conda).

  4. Immettere il nome della libreria nella casella di ricerca. Durante la digitazione, la casella di ricerca suggerisce librerie popolari, ma l'elenco è limitato. Se la libreria non viene visualizzata, immettere il nome completo.

    Screenshot che mostra il processo di aggiunta di una libreria da un repository pubblico.

    Se viene trovato il nome della libreria, sono visualizzate le versioni disponibili.

  5. Selezionare la versione e quindi salvare e pubblicare l'ambiente.

Aggiungere una libreria da Maven

Fabric supporta l'installazione di librerie direttamente dai repository Maven. A tale scopo, creare un file POM che elenca le dipendenze Maven da installare e caricarlo nell'ambiente.

  1. Nella scheda Repository esterni selezionare Importa pom.xml.

  2. Selezionare il file pom.xml dalla directory locale.

Nota

  • L'importazione di pom.xml è supportata solo in Spark 4.0 e versioni successive.
  • L'importazione di pom.xml è supportata solo in modalità completa. In questa modalità, Fabric esegue la risoluzione delle dipendenze e il rilevamento dei conflitti per i pacchetti Maven. Se una libreria non è compatibile con il runtime, verrà visualizzato un errore dopo la pubblicazione.
  • L'importazione di pom.xml non è supportata nelle aree di lavoro con Protezione accesso in uscita abilitata. In queste aree di lavoro scaricare le librerie necessarie da Maven e caricarle come librerie personalizzate.

Aggiungere una libreria da un repository privato

I repository privati consentono di installare i pacchetti usando pip o conda.

  1. Nella scheda Repository esterni selezionare Aggiungi libreria.

  2. Selezionare Aggiungi libreria dal repository privato.

  3. Selezionare l'origine (pip o conda).

  4. Immettere il nome e la versione della libreria. Assicurarsi di immettere il nome e la versione della libreria in modo accurato, perché la ricerca nelle librerie nei repository privati durante la digitazione non è supportata. Le informazioni sui pacchetti non corrette causano l'esito negativo della pubblicazione.

Aggiungere librerie da un feed di artefatti di Azure

Azure feed di artefatti possono essere limitati a un progetto (privato) o a un'organizzazione (pubblica). Fabric supporta entrambi gli ambiti. Indipendentemente dalla visibilità del feed in Azure DevOps, Fabric si connette sempre tramite una connessione di Data Factory autenticata, quindi è necessario configurare una connessione anche per i feed pubblici.

Nota

L'installazione di librerie dal Feed di Azure Artifacts è supportata in Spark 3.5. Non è supportato nelle aree di lavoro con collegamento privato o protezione dell'accesso in uscita abilitata.

Configurare una connessione per il feed di artifact Azure

L'ambiente non memorizza credenziali direttamente. Creare invece una connessione tramite Data Factory Connector e farvi riferimento in base all'ID connessione in un file YML. Altre informazioni su Feed di artefatti di Azure.

  1. Selezionare l'icona a forma di ingranaggio Impostazioni nell'angolo superiore destro del portale di Fabric e quindi selezionare Gestisci connessioni e gateway.

    Screenshot che mostra il punto di ingresso dei connettori dell'ambiente per i repository esterni.

  2. Creare una nuova connessione. Selezionare + Nuovo e quindi selezionare Cloud come tipo e scegliere Azure Feed artefatto (anteprima) come tipo di connessione.

    Screenshot che mostra un esempio di creazione di una nuova connessione cloud con Feed di artefatti di Azure (Anteprima) selezionato.

  3. Immettere l'URL del feed e un token di accesso personale (PAT) con ambito lettura pacchetti>.

  4. Selezionare Consenti artefatti Code-First, come i notebook, per accedere a questa connessione (Anteprima).

    Screenshot che mostra un esempio di creazione di una nuova schermata del connettore.

  5. Selezionare Crea per salvare la connessione. Dovrebbe essere visualizzato nell'elenco delle connessioni.

  6. Registrare l'ID connessione dopo la creazione. perché sarà necessario nel passaggio successivo.

Preparare e caricare un file YML

Creare un file YML che elenca i pacchetti da installare e fa riferimento all'ID connessione anziché all'URL e alle credenziali del feed. Fabric usa l'ID connessione per autenticare ed eseguire il pull dei pacchetti dal feed in fase di pubblicazione.

Una configurazione pip standard fa riferimento direttamente all'URL e alle credenziali del feed:

dependencies:
  - pip:
    - fuzzywuzzy==0.18.0
    - wordcloud==1.9.4
    - --index-url <URL_TO_THE_AZURE_ARTIFACT_FEED_WITH_AUTH>

Per Fabric, sostituire l'URL con l'ID di connessione registrato in precedenza:

dependencies:
  - pip:
    - fuzzywuzzy==0.18.0
    - wordcloud==1.9.4
    - --index-url <YOUR_CONNECTION_ID>

Caricare il file YML direttamente nell'ambiente oppure passare alla visualizzazione dell'editor YML e incollare il contenuto. Quando si pubblica l'ambiente, Fabric legge i pacchetti dal feed e li rende persistenti. Se si aggiornano i pacchetti nel feed di artefatti di Azure, ripubblicare l'ambiente per selezionare le versioni più recenti.

Nota

  • Nella visualizzazione Elenco è possibile aggiungere, rimuovere o modificare le librerie dalle connessioni di feed esistenti. Per aggiungere, rimuovere o modificare una connessione feed stessa, passare alla visualizzazione dell'editor YML e aggiornare direttamente il file YML.
  • È possibile specificare più feed nel file YML. Fabric cerca nell'ordine elencato finché non trova il pacchetto. I repository pubblici, ad esempio PyPI e Conda, vengono cercati automaticamente, anche se non sono inclusi nel file YML.
  • Se non è possibile trovare un pacchetto nel file YML in uno dei feed elencati, la pubblicazione non riesce. Controllare il nome e la versione del pacchetto prima della pubblicazione.

Gestire librerie esterne

Dopo aver aggiunto librerie esterne, è possibile gestirle dalla sezione Repository esterni .

  • Filter : usare un nome di pacchetto come parola chiave per filtrare l'elenco di librerie esterne.
  • Aggiorna : selezionare una libreria per aggiornarne il nome, la versione o il tipo di origine nella visualizzazione Elenco. Nella visualizzazione dell'editor YML è anche possibile aggiornare l'ID connessione Azure artifact feed.
  • Elimina : passare il puntatore del mouse su una riga di libreria per visualizzare l'opzione Elimina oppure selezionare più librerie e quindi selezionare Elimina. Puoi anche rimuovere le librerie utilizzando la visualizzazione dell'editor YML.
  • Visualizzare le dipendenze : passare il puntatore del mouse su una libreria di repository pubblici e selezionare Visualizza dipendenze per recuperare l'albero delle dipendenze. Le informazioni sulle dipendenze non sono disponibili per librerie private o librerie provenienti da un Feed di Artifact di Azure.
  • Esporta in .yml : esportare l'elenco completo di librerie esterne in un .yml file e scaricarlo nella directory locale.

Librerie personalizzate

Le librerie personalizzate fanno riferimento al codice compilato dall'utente o dall'organizzazione. Fabric supporta file di libreria personalizzati nei formati /.whl, .py, .jar e .tar.gz. Come per le librerie esterne, si sceglie una modalità di pubblicazione (completa o rapida) quando si caricano pacchetti personalizzati. Per informazioni dettagliate, vedere Selezionare la modalità di pubblicazione per le librerie.

Nota

Fabric supporta solo i file .tar.gz per il linguaggio R. Utilizzare il formato di file .whl e .py per il linguaggio Python.

Usare i pulsanti Carica e Scarica nella pagina Librerie personalizzate per aggiungere librerie dalla directory locale o scaricarle localmente.

Screenshot che mostra la schermata Librerie personalizzate dell'ambiente.

Per eliminare una libreria, passare il puntatore del mouse sulla riga e selezionare l'icona del cestino oppure selezionare più librerie e quindi selezionare Elimina.

Selezionare la modalità di pubblicazione per le librerie

Quando si aggiungono librerie esterne o personalizzate, si sceglie una modalità di pubblicazione. La modalità completa è disponibile per tutte le origini di libreria e i tipi di carico di lavoro. La modalità rapida è disponibile per i repository pubblici e la maggior parte dei formati di libreria personalizzati, ma solo quando si eseguono notebook.

Screenshot che mostra le diverse modalità nella schermata di gestione della libreria.

La tabella seguente illustra la modalità di pubblicazione supportata da ogni origine della libreria.

Fonte biblioteca Modalità completa Modalità rapida
Repository pubblico (PyPI/Conda)
Repository privato (pip/conda) No
Azure Artifacts Feed No
Personalizzato .whl, .py, .tar.gz
.jar personalizzato No

Scegliere la modalità corretta per le proprie esigenze

Usare la complessità delle dipendenze e il tipo di carico di lavoro per decidere quale modalità si adatta.

  • La modalità completa risolve le dipendenze, convalida la compatibilità e crea uno snapshot della libreria stabile durante la pubblicazione. Lo snapshot viene distribuito all'avvio di una nuova sessione. Ideale per set di dipendenze di dimensioni maggiori ,ad esempio più di 10 pacchetti, carichi di lavoro di produzione e pipeline. La pubblicazione richiede in genere da 3 a 6 minuti; l'avvio di una sessione aggiunge da 1 a 3 minuti per la distribuzione delle dipendenze, a seconda delle dimensioni delle medesime. Per mantenere uno snapshot stabile durante l'avvio di una sessione di circa 5 secondi, usare la modalità completa insieme a un pool live personalizzato.
  • La modalità rapida ignora l'elaborazione delle dipendenze durante la pubblicazione e installa i pacchetti all'avvio della sessione del notebook. Ideale per set di dipendenze più leggeri, iterazione rapida e sperimentazione in fase iniziale. La pubblicazione viene completata in circa 5 secondi; l'installazione della libreria viene eseguita all'avvio della sessione.

È possibile combinare le modalità durante lo sviluppo. Un modello comune consiste nell'eseguire l'iterazione in modalità rapida, quindi spostare le dipendenze convalidate in modalità completa per uno snapshot di produzione stabile. È anche possibile mantenere invariato uno snapshot in modalità completa esistente e aggiungere nuovi pacchetti di test in modalità rapida, ovvero lo snapshot in modalità completa distribuisce prima, quindi i pacchetti in modalità rapida vengono installati in primo piano.

Limitazioni e comportamento della modalità

Tenere presenti questi vincoli quando si lavora con le modalità di pubblicazione.

  • La modalità rapida funziona solo con i notebook, non con le definizioni dei processi Spark.
  • Per spostare una libreria personalizzata tra le modalità, scaricare il file, rimuoverlo dalla modalità corrente, quindi caricarlo nella modalità di destinazione. I trasferimenti diretti tra le modalità non sono supportati.
  • I log di installazione non vengono visualizzati nel notebook. Usare Monitoraggio (livello 2) per tenere traccia dello stato di avanzamento e risolvere i problemi.
  • Quando entrambe le modalità contengono pacchetti, lo snapshot in modalità completa viene applicato per primo. I pacchetti in modalità rapida vengono installati in primo piano ed eseguono l'override di qualsiasi pacchetto in modalità completa con lo stesso nome.
  • Quando i pacchetti duplicati esistono tra le modalità, le versioni in modalità rapida eseguono l'override delle versioni in modalità completa solo per la sessione del notebook corrente. L'avvio di una nuova sessione riapplica lo snapshot in modalità completa, quindi i pacchetti in modalità veloce vengono installati successivamente.
  • I pacchetti in modalità rapida vengono installati quando viene eseguita la prima cella di codice per tale linguaggio. Ad esempio, Python pacchetti vengono installati quando viene eseguita la prima cella Python e i pacchetti R vengono installati quando viene eseguita la prima cella R.