Librerie
Per rendere disponibile codice di terze parti o personalizzato per i notebook e i processi in esecuzione nei cluster, è possibile installare una libreria. Le librerie possono essere scritte in Python, Java, Scala e R. È possibile caricare librerie Python, Java e Scala e puntare a pacchetti esterni nei repository PyPI, Maven e CRAN.
Azure Databricks include molte librerie comuni in Databricks Runtime. Per verificare quali librerie sono incluse in Databricks Runtime, vedere la sottosezione Ambiente di sistema delle note sulla versione di Databricks Runtime per la versione di Databricks Runtime in uso.
Nota
Il supporto tecnico Microsoft contribuisce all'isolamento e alla risoluzione di problemi correlati alle librerie installate e gestite da Azure Databricks. Per i componenti di terze parti, incluse le librerie, Microsoft fornisce supporto commercialmente ragionevole per contribuire alla risoluzione dei problemi. Il supporto tecnico Microsoft fornisce il miglior supporto possibile e potrebbe riuscire a risolvere il problema. Per i connettori e i progetti open source ospitati in GitHub, è consigliabile segnalare i problemi e seguirne il corso in GitHub. Le attività di sviluppo, ad esempio lo shading di file JAR o la compilazione di librerie Python, non sono supportate tramite il processo standard di invio di casi di supporto, ma richiedono un impegno di consulenza per una risoluzione più rapida. Il supporto potrebbe chiedere di coinvolgere altri canali per le tecnologie open source, che possono offrire competenze approfondite per la tecnologia in questione. Sono disponibili diversi siti delle community, ad esempio la pagina di Microsoft Q&A per Azure Databricks e Stack Overflow.
Librerie con ambito cluster
È possibile installare librerie nei cluster in modo che possano essere usate da tutti i notebook e i processi in esecuzione nel cluster. Databricks supporta librerie Python, JAR e R. Vedere Librerie cluster.
È possibile installare una libreria di cluster direttamente dalle origini seguenti:
- Un repository di pacchetti, ad esempio PyPI, Maven o CRAN
- File dell'area di lavoro
- Volumi del catalogo Unity
- Posizione di archiviazione di oggetti cloud
- Percorso nel computer locale
Non tutte le posizioni sono supportate per tutti i tipi di librerie o tutte le configurazioni di calcolo. Per consigli sulla configurazione, vedere Raccomandazioni per il caricamento di librerie .
Importante
Le librerie possono essere installate da DBFS quando si usa Databricks Runtime 14.3 LTS e versioni successive. Tuttavia, qualsiasi utente dell'area di lavoro può modificare i file di libreria archiviati in DBFS. Per migliorare la sicurezza delle librerie in un'area di lavoro di Azure Databricks, l'archiviazione dei file di libreria nella radice DBFS è deprecata e disabilitata per impostazione predefinita in Databricks Runtime 15.1 e versioni successive. Per impostazione predefinita, vedere Archiviazione di librerie nella radice DBFS deprecata e disabilitata.
Databricks consiglia invece di caricare tutte le librerie, incluse le librerie Python, i file JAR e i connettori Spark, nei file dell'area di lavoro o nei volumi di Unity Catalog o usando i repository dei pacchetti di libreria. Se il carico di lavoro non supporta questi modelli, è anche possibile usare le librerie archiviate nell'archiviazione di oggetti cloud.
Per informazioni complete sul supporto delle librerie, vedere Supporto della libreria Python, supporto della libreria Java e Scala e supporto per la libreria R.
Suggerimenti per il caricamento di librerie
Databricks supporta la maggior parte delle installazioni di configurazione delle librerie Python, JAR e R, ma esistono alcuni scenari non supportati. È consigliabile caricare le librerie nei percorsi di origine che supportano l'installazione nel calcolo con la modalità di accesso condiviso, perché questa è la modalità consigliata per tutti i carichi di lavoro. Vedere Modalità di accesso usata. Quando si pianificano processi con modalità di accesso condiviso, eseguire il processo con un'entità servizio.
Importante
Usare il calcolo solo con la modalità di accesso utente singolo se la funzionalità richiesta non è supportata dalla modalità di accesso condiviso. Nessuna modalità di accesso condiviso di isolamento è una configurazione legacy in Databricks non consigliata.
La tabella seguente fornisce raccomandazioni organizzate in base alla versione di Databricks Runtime e all'abilitazione di Unity Catalog.
Impostazione | Elemento consigliato |
---|---|
Databricks Runtime 13.3 LTS e versioni successive con Unity Catalog | Installare librerie in ambiente di calcolo con modalità di accesso condiviso dai volumi del catalogo Unity con GRANT READ per tutti gli utenti dell'account. Se applicabile, le coordinate Maven e i percorsi della libreria JAR devono essere aggiunti all'elenco consenti. |
Databricks Runtime 11.3 LTS e versioni successive senza Unity Catalog | Installare le librerie dai file dell'area di lavoro. Il limite di dimensioni del file è 500 MB. |
Databricks Runtime 10.4 LTS e versioni successive | Installare librerie dall'archiviazione di oggetti cloud. |
Supporto della libreria Python
La tabella seguente indica la compatibilità delle versioni di Databricks Runtime per i file con rotellina Python per diverse modalità di accesso al cluster in base al percorso di origine della libreria. Vedere Le versioni delle note sulla versione di Databricks Runtime e le modalità di compatibilità e access.
In Databricks Runtime 15.0 e versioni successive è possibile usare requirements.txt file per gestire le dipendenze di Python. Questi file possono essere caricati in qualsiasi percorso di origine supportato.
Nota
L'installazione di file egg Python non è supportata con Databricks Runtime 14.0 e versioni successive. Usare invece i file wheel python o installare pacchetti da PyPI.
Chiave di accesso condiviso | Modalità di accesso utente singolo | Nessun isolamento modalità di accesso condiviso (legacy) | |
---|---|---|---|
PyPI | 13.3 LTS e versioni successive | Tutte le versioni supportate di Databricks Runtime | Tutte le versioni supportate di Databricks Runtime |
File dell'area di lavoro | 13.3 LTS e versioni successive | 13.3 LTS e versioni successive | 14.1 e versioni successive |
Volumi | 13.3 LTS e versioni successive | 13.3 LTS e versioni successive | Non supportato |
Archiviazione nel cloud | 13.3 LTS e versioni successive | Tutte le versioni supportate di Databricks Runtime | Tutte le versioni supportate di Databricks Runtime |
DBFS (scelta non consigliata) | Non supportato | 14.3 e versioni successive | 14.3 e versioni successive |
Supporto della libreria Java e Scala
La tabella seguente indica la compatibilità della versione di Databricks Runtime per i file JAR per diverse modalità di accesso al cluster in base al percorso di origine della libreria. Vedere Le versioni delle note sulla versione di Databricks Runtime e le modalità di compatibilità e access.
Nota
La modalità di accesso condiviso richiede a un amministratore di aggiungere coordinate e percorsi Maven per le librerie JAR a un oggetto allowlist
. Si veda Librerie Allowlist e script di init su calcolo condiviso.
Chiave di accesso condiviso | Modalità di accesso utente singolo | Nessun isolamento modalità di accesso condiviso (legacy) | |
---|---|---|---|
Maven | 13.3 LTS e versioni successive | Tutte le versioni supportate di Databricks Runtime | Tutte le versioni supportate di Databricks Runtime |
File dell'area di lavoro | Non supportato | Non supportato | 14.1 e versioni successive |
Volumi | 13.3 LTS e versioni successive | 13.3 LTS e versioni successive | Non supportato |
Archiviazione nel cloud | 13.3 LTS e versioni successive | Tutte le versioni supportate di Databricks Runtime | Tutte le versioni supportate di Databricks Runtime |
DBFS (scelta non consigliata) | Non supportato | 14.3 e versioni successive | 14.3 e versioni successive |
Supporto della libreria R
La tabella seguente indica la compatibilità della versione di Databricks Runtime per i pacchetti CRAN per diverse modalità di accesso al cluster. Vedere Le versioni delle note sulla versione di Databricks Runtime e le modalità di compatibilità e access.
Chiave di accesso condiviso | Modalità di accesso utente singolo | Nessun isolamento modalità di accesso condiviso (legacy) | |
---|---|---|---|
CRAN | Non supportato | Tutte le versioni supportate di Databricks Runtime | Tutte le versioni supportate di Databricks Runtime |
Librerie con ambito Notebook
Le librerie con ambito notebook, disponibili per Python e R, consentono di installare librerie e creare un ambiente con ambito una sessione del notebook. Queste librerie non influiscono su altri notebook in esecuzione nello stesso cluster. Le librerie con ambito notebook non vengono mantenute e devono essere riinstallate per ogni sessione. Usare le librerie con ambito notebook quando è necessario un ambiente personalizzato per un notebook specifico.
Nota
Non è possibile installare jar a livello di notebook.
Importante
Le librerie dell'area di lavoro sono deprecate e non devono essere usate. Vedere Librerie dell'area di lavoro (legacy). Tuttavia, l'archiviazione delle librerie come file dell'area di lavoro è distinta dalle librerie dell'area di lavoro ed è ancora completamente supportata. È possibile installare le librerie archiviate come file dell'area di lavoro direttamente nelle attività di calcolo o di processo.
Gestione dell'ambiente Python
La tabella seguente fornisce una panoramica delle opzioni che è possibile usare per installare le librerie Python in Azure Databricks.
Nota
- I contenitori personalizzati che usano un ambiente basato su conda non sono compatibili con le librerie con ambito notebook e con le librerie cluster in Databricks Runtime 10.4 LTS e versioni successive. Azure Databricks raccomanda invece di installare le librerie direttamente nell'immagine o di utilizzare gli script di inizializzazione. Per continuare a utilizzare le librerie del cluster in questi scenari, è possibile impostare la configurazione di Spark
spark.databricks.driverNfs.clusterWidePythonLibsEnabled
sufalse
. Il supporto per la configurazione di Spark verrà rimosso il 31 dicembre 2021 o dopo il 31 dicembre 2021.
Origine dei pacchetti Python | Librerie con ambito notebook disponibili tramite %pip | Librerie con ambito notebook con file YAML dell'ambiente di base | Librerie in cluster | Librerie di processi con l'API Processi |
---|---|---|---|---|
PyPI | Usare %pip install . Vedere l'esempio. |
Aggiungere un nome di pacchetto PyPI a un file YAML dell'ambiente di base. Vedere l'esempio. | Selezionare PyPI come origine. | Aggiungere un nuovo oggetto pypi alle librerie di processi e specificare il campo package . |
Mirror PyPI privato, ad esempio Nexus o Artifactory | Usare %pip install con l'opzione --index-url . La gestione dei segreti è disponibile. Vedere l'esempio. |
Aggiungere a un file YAML dell'ambiente -–index-url di base. La gestione dei segreti è disponibile. Vedere l'esempio. |
Non supportato. | Non supportato. |
VCS, ad esempio GitHub, con origine RAW | Usare %pip install e specificare l'URL del repository come nome del pacchetto. Vedere l'esempio. |
Aggiungere un URL del repository come nome del pacchetto a un file YAML dell'ambiente di base. Vedere l'esempio. | Selezionare PyPI come origine e specificare l'URL del repository come nome del pacchetto. | Aggiungere un nuovo oggetto pypi alle librerie di processi e specificare l'URL del repository come valore del campo package . |
VCS privato con origine RAW | Usare %pip install e specificare l'URL del repository con autenticazione di base come nome del pacchetto. La gestione dei segreti è disponibile. Vedere l'esempio. |
Aggiungere un repository con autenticazione di base come nome del pacchetto a un file YAML dell'ambiente di base. Vedere l'esempio. | Non supportato. | Non supportato. |
Percorso file | Usare %pip install . Vedere l'esempio. |
Aggiungere un percorso di file come nome del pacchetto a un file YAML dell'ambiente di base. Vedere l'esempio. | Selezionare Percorso file/ADLS come origine. | Aggiungere un nuovo egg oggetto o whl alle librerie di processi e specificare il percorso del file come package campo. |
Azure Data Lake Storage Gen2 | Usare %pip install insieme a un URL prefirmato. I percorsi con il protocollo abfss:// Azure Data Lake Storage Gen2 non sono supportati. |
Aggiungere un URL prefirmato come nome del pacchetto a un file YAML dell'ambiente di base. I percorsi con il protocollo abfss:// Azure Data Lake Storage Gen2 non sono supportati. |
Selezionare Percorso file/ADLS come origine. | Aggiungere un nuovo egg oggetto o whl alle librerie di processi e specificare il percorso di Azure Data Lake Storage Gen2 come package campo. |
Precedenza della libreria Python
Potrebbe verificarsi una situazione in cui è necessario eseguire l'override della versione per una libreria predefinita o avere una libreria personalizzata in conflitto con un'altra libreria installata nel cluster. Quando si esegue import <library>
, la libreria con precedenza elevata viene importata.
Importante
Le librerie archiviate nei file dell'area di lavoro hanno precedenza diversa a seconda della modalità di aggiunta a Python sys.path
. Una cartella Git di Databricks aggiunge la directory di lavoro corrente al percorso prima di tutte le altre librerie, mentre i notebook esterni alle cartelle Git aggiungono la directory di lavoro corrente dopo l'installazione di altre librerie. Se si aggiungono manualmente le directory dell'area di lavoro al percorso, queste hanno sempre la precedenza più bassa.
Nell'elenco seguente la precedenza degli ordini viene eseguita dal più alto al più basso. In questo elenco un numero inferiore indica una precedenza più alta.
- Librerie nella directory di lavoro corrente (solo cartelle Git).
- Librerie nella directory radice della cartella Git (solo cartelle Git).
- Librerie con ambito notebook (
%pip install
nei notebook). - Librerie di cluster (usando l'interfaccia utente, l'interfaccia della riga di comando o l'API).
- Librerie incluse in Databricks Runtime.
- Le librerie installate con script init possono essere risolte prima o dopo le librerie predefinite, a seconda della modalità di installazione. Databricks non consiglia di installare librerie con script init.
- Librerie nella directory di lavoro corrente (non nelle cartelle Git).
- File dell'area di lavoro aggiunti all'oggetto
sys.path
.