Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara oraQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Per rendere il codice di terze parti o compilato localmente disponibile per le applicazioni, è possibile installare una libreria in uno dei pool di Apache Spark serverless. I pacchetti elencati nel file requirements.txt vengono scaricati da PyPi all'avvio del pool. Questo file di requisiti viene usato ogni volta che viene creata un'istanza di Spark da tale pool di Spark. Dopo aver installato una libreria per un pool di Spark, è disponibile per tutte le sessioni che usano lo stesso pool.
In alcuni casi, è possibile che una libreria non venga visualizzata nel pool di Apache Spark. Questo caso si verifica spesso in presenza di un errore nelle librerie requirements.txt o nelle librerie specificate. Quando si verifica un errore nel processo di installazione della libreria, il pool di Apache Spark ripristina le librerie specificate nel runtime di base di Synapse.
L'obiettivo di questo documento è fornire problemi comuni e facilitare il debug degli errori di installazione della libreria.
Quando si aggiornano le librerie nel pool di Apache Spark, queste modifiche verranno recuperate dopo il riavvio del pool. Se sono presenti processi attivi, questi continueranno a essere eseguiti nella versione originale del pool di Spark.
È possibile forzare l'applicazione delle modifiche selezionando l'opzione Forza nuove impostazioni. Questa impostazione terminerà tutte le sessioni correnti per il pool di Spark selezionato. Al termine delle sessioni, è necessario attendere il riavvio del pool.
Viene avviato un processo Spark riservato per il sistema ogni volta che un pool viene aggiornato con un nuovo set di librerie. Questo processo Spark consente di monitorare lo stato dell'installazione della libreria. Se l'installazione non riesce a causa di conflitti della libreria o altri problemi, il pool di Spark ripristina lo stato precedente o predefinito.
Inoltre, gli utenti possono anche esaminare i log di installazione per identificare i conflitti di dipendenza o vedere quali librerie sono state installate durante l'aggiornamento del pool.
Per visualizzare questi log:
In alcuni casi, gli utenti possono anche esaminare i log di installazione completi disponibili nel Server cronologia Spark per identificare conflitti di dipendenza complessi. I log disponibili tramite l'interfaccia utente di Spark potrebbero essere troncati e l'accesso ai log di installazione completi tramite il Server cronologia Spark sarebbe utile in scenari di installazione di librerie complessi.
Per visualizzare i log di installazione completi:
Per installare e aggiornare le librerie, è necessario disporre delle autorizzazioni Collaboratore ai dati del BLOB di archiviazione o Proprietario dei dati del BLOB di archiviazione nell'account di archiviazione Azure Data Lake Storage Gen2 primario collegato all'area di lavoro di Azure Synapse Analytics.
Per verificare di avere queste autorizzazioni, è possibile eseguire il codice seguente:
from pyspark.sql.types import StructType,StructField, StringType, IntegerType
data2 = [("James","Smith","Joe","4355","M",3000),
("Michael","Rose","Edward","40288","F",4000)
]
schema = StructType([ \
StructField("firstname",StringType(),True), \
StructField("middlename",StringType(),True), \
StructField("lastname",StringType(),True), \
StructField("id", StringType(), True), \
StructField("gender", StringType(), True), \
StructField("salary", IntegerType(), True) \
])
df = spark.createDataFrame(data=data2,schema=schema)
df.write.csv("abfss://<<ENTER NAME OF FILE SYSTEM>>@<<ENTER NAME OF PRIMARY STORAGE ACCOUNT>>.dfs.core.windows.net/validate_permissions.csv")
Se viene visualizzato un errore, è probabile che manchino le autorizzazioni necessarie. Per informazioni su come ottenere le autorizzazioni necessarie, visitare questo documento: Assegnare autorizzazioni di Collaboratore ai dati del BLOB di archiviazione o Proprietario dei dati del BLOB di archiviazione.
Inoltre, se si esegue una pipeline, l'identità del servizio gestito dell'area di lavoro deve disporre anche delle autorizzazioni di Proprietario dei dati del BLOB di archiviazione o Collaboratore ai dati del BLOB di archiviazione. Per informazioni su come concedere all'identità dell'area di lavoro questa autorizzazione, vedere: Concedere le autorizzazioni all'identità gestita dell'area di lavoro.
È possibile usare un file di configurazione dell'ambiente per aggiornare l'ambiente Conda. Questo formato di file accettabile per la gestione del pool Python è elencato come Specifiche dell'ambiente.
Si tengano in considerazione le restrizioni seguenti:
I pool di Apache Spark serverless di Synapse si basano sulla distribuzione Linux. Quando si scaricano e si installano file Wheel direttamente da PyPI, assicurarsi di selezionare la versione compilata in Linux ed eseguita nella stessa versione di Python del pool di Spark.
Importante
È possibile aggiungere o modificare pacchetti personalizzati tra le sessioni. Tuttavia, sarà necessario attendere il riavvio del pool e della sessione per visualizzare il pacchetto aggiornato.
In generale, la risoluzione delle dipendenze Python può essere difficile da gestire. Per eseguire il debug dei conflitti di dipendenza in locale, è possibile creare un ambiente virtuale personalizzato in base al runtime di Synapse e convalidare le modifiche.
Per ricreare l'ambiente e convalidare gli aggiornamenti:
Scaricare il modello per ricreare il runtime di Synapse in locale. Potrebbero esserci lievi differenze tra il modello e l'ambiente Synapse effettivo.
Creare un ambiente virtuale usando le istruzioni seguenti. Questo ambiente consente di creare un'installazione di Python isolata con l'elenco specificato di librerie.
conda myenv create -f environment.yml
conda activate myenv
Usare pip install -r <provide your req.txt file>
per aggiornare l'ambiente virtuale con i pacchetti specificati. Se l'installazione genera un errore, potrebbe verificarsi un conflitto tra ciò che è preinstallato nel runtime di base di Synapse e ciò che viene specificato nel file dei requisiti specificato. È necessario risolvere questi conflitti di dipendenza per ottenere le librerie aggiornate nel pool di Apache Spark serverless.
Importante
Possono insorgere problemi quando si usano pip e conda insieme. Quando si combinano pip e conda, è bene seguire queste procedure consigliate.
Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara oraFormazione
Modulo
Integrare pool SQL e di Apache Spark in Azure Synapse Analytics - Training
Integrare pool SQL e di Apache Spark in Azure Synapse Analytics