Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SynapseML (Synapse Machine Learning) è preinstallato in Microsoft Fabric. Se è necessaria una versione specifica, è possibile eseguirne l'override usando il %%configure comando magic in un notebook Fabric.
Avvio rapido
| Passo | Action | Stima del tempo |
|---|---|---|
| 1 | Verificare i prerequisiti (area di lavoro, notebook) | 2 minuti |
| 2 | Aggiungere %%configure una cella per installare la versione di SynapseML necessaria |
1 minuto |
| 3 | Verificare la versione installata | 1 minuto |
Prerequisiti
Prima di iniziare, assicurarsi di disporre delle risorse seguenti:
| Requisito | Dettagli |
|---|---|
| area di lavoro Microsoft Fabric | Un'area di lavoro con una capacità Fabric (F2 o superiore) o una versione di prova di Fabric. |
| Notebook in tessuto | Creare un nuovo notebook nell'ambiente Fabric Data Science o Data Engineering. |
| Versione di runtime di Fabric | Scopri la versione del runtime dell'area di lavoro. Le versioni JAR synapseML e Spark Avro devono corrispondere alla versione di Spark nel runtime. Vedi versioni di runtime di Fabric. |
Importante
Il %%configure comando riavvia la sessione spark con nuove impostazioni. Eseguilo nella prima cella del tuo notebook, prima di qualsiasi altro codice. Se viene eseguito dopo l'avvio di una sessione Spark, il flag -f forza il riavvio della sessione e tutte le variabili e lo stato vengono persi.
Nota
Il %%configure comando magic nei notebook Fabric ha un supporto ufficiale limitato. Non esiste alcuna garanzia di un contratto di servizio o di una futura compatibilità con le versioni ufficiali. Per un metodo supportato, valutare l'uso di personalizzazione dell'ambiente Fabric per gestire le librerie.
Compatibilità dei runtime di SynapseML e Fabric
Scegli la versione di SynapseML e il file JAR di Spark Avro corrispondenti alla versione di Spark del runtime Fabric:
| runtime di Fabric | Versione di Spark | Versione di SynapseML | Spark Avro JAR |
|---|---|---|---|
| Runtime 1.1 | 3.3 | Da 0.11.1 a 0.11.4 | spark-avro_2.12:3.3.1 |
| Runtime 1.2 | 3.4 | Da 1.0.4 a 1.0.8 | spark-avro_2.12:3.4.1 |
| Runtime 1.3 | 3.5 | Da 1.0.4 a 1.0.8 | spark-avro_2.12:3.5.1 |
È possibile trovare le versioni di SynapseML disponibili in Maven Central.
Installare SynapseML con %%configure
Il %%configure -f comando configura le proprietà della sessione Spark, incluse le coordinate del pacchetto Maven. Il -f flag forza il riavvio della sessione esistente.
Esempio per Fabric Runtime 1.2 (Spark 3.4)
Incolla questo codice nella prima cella di un nuovo notebook di Fabric ed esegui la cella:
%%configure -f
{
"name": "synapseml",
"conf": {
"spark.jars.packages": "com.microsoft.azure:synapseml_2.12:1.0.8,org.apache.spark:spark-avro_2.12:3.4.1",
"spark.jars.repositories": "https://mmlspark.azureedge.net/maven",
"spark.jars.excludes": "org.scala-lang:scala-reflect,org.apache.spark:spark-tags_2.12,org.scalactic:scalactic_2.12,org.scalatest:scalatest_2.12,com.fasterxml.jackson.core:jackson-databind",
"spark.yarn.user.classpath.first": "true",
"spark.sql.parquet.enableVectorizedReader": "false",
"spark.sql.legacy.replaceDatabricksSparkAvro.enabled": "true"
}
}
Per installare una versione diversa, sostituire i numeri di versione in spark.jars.packages:
-
synapseml_2.12:<version>: versione di SynapseML desiderata, ad esempio1.0.4. -
spark-avro_2.12:<spark-version>: deve corrispondere alla versione di Spark Fabric runtime (vedere la tabella di compatibilità).
Esempio per Fabric Runtime 1.1 (Spark 3.3)
%%configure -f
{
"name": "synapseml",
"conf": {
"spark.jars.packages": "com.microsoft.azure:synapseml_2.12:0.11.4,org.apache.spark:spark-avro_2.12:3.3.1",
"spark.jars.repositories": "https://mmlspark.azureedge.net/maven",
"spark.jars.excludes": "org.scala-lang:scala-reflect,org.apache.spark:spark-tags_2.12,org.scalactic:scalactic_2.12,org.scalatest:scalatest_2.12,com.fasterxml.jackson.core:jackson-databind",
"spark.yarn.user.classpath.first": "true",
"spark.sql.parquet.enableVectorizedReader": "false",
"spark.sql.legacy.replaceDatabricksSparkAvro.enabled": "true"
}
}
Verificare la configurazione di Spark
Dopo l'esecuzione della cella, verificare che la sessione spark abbia accettato la configurazione. Eseguire questo codice in una nuova cella:
print(spark.conf.get("spark.jars.packages"))
Output previsto (per l'esempio runtime 1.2):
com.microsoft.azure:synapseml_2.12:1.0.8,org.apache.spark:spark-avro_2.12:3.4.1
Controllare la versione di SynapseML
Per verificare l'installazione, eseguire il codice seguente in una nuova cella. Il numero di versione deve corrispondere alla versione installata.
import synapse.ml.lightgbm
print(f"SynapseML version: {synapse.ml.lightgbm.__version__}")
Output previsto (per l'esempio runtime 1.2):
SynapseML version: 1.0.8
Nota
In SynapseML 1.0 e versioni successive il synapse.ml.cognitive modulo è deprecato. Usare synapse.ml.services invece per accedere alle integrazioni del servizio di intelligenza artificiale.
Ripristinare la versione predefinita
Per ripristinare la versione di SynapseML preinstallata, rimuovere la %%configure cella e riavviare la sessione del notebook:
- Eliminare o commentare la cella
%%configure. - Selezionare Sessione>arresta sessione nella barra degli strumenti del notebook.
- Eseguire qualsiasi cella per avviare una nuova sessione con la configurazione predefinita.
Informazioni di riferimento sulla configurazione
Il %%configure blocco include queste proprietà di Spark:
| Proprietà | Purpose |
|---|---|
spark.jars.packages |
Le coordinate Maven per i file JAR di SynapseML e Spark Avro. |
spark.jars.repositories |
URL aggiuntivo del repository Maven per gli artefatti SynapseML. |
spark.jars.excludes |
Esclude le dipendenze transitive in conflitto con le librerie di Fabric preinstallate. |
spark.yarn.user.classpath.first |
Assegna la priorità ai JAR forniti dall'utente su quelli preinstallati. |
spark.sql.parquet.enableVectorizedReader |
Disabilita il lettore Parquet vettorializzato per evitare problemi di compatibilità. |
spark.sql.legacy.replaceDatabricksSparkAvro.enabled |
Abilita la compatibilità con il lettore Avro precedente. |
Troubleshooting
La cella %%configure non ha alcun effetto
Causa: la %%configure cella non era la prima cella da eseguire o una sessione Spark era già attiva.
Correzione: selezionare Sessione>arresta sessione, quindi eseguire prima la %%configure cella.
Il download JAR non riesce o va in timeout
Causa: il repository Maven non è raggiungibile o le coordinate della versione non sono corrette.
Correzione: verificare che la versione di SynapseML esista in Maven Central. Verificare che la spark-avro versione corrisponda alla versione del runtime di Spark.
ClassNotFoundException o NoSuchMethodError durante l’esecuzione
Causa: la versione di SynapseML non è compatibile con la versione di Spark di runtime Fabric.
Correzione: usare la tabella di compatibilità per selezionare la combinazione di versione corretta.
ImportError: nessun modulo denominato 'synapse.ml'
Causa: il pacchetto wrapper Python SynapseML non è installato nell'ambiente notebook.
Correzione: in una nuova cella eseguire:
%pip install synapseml==1.0.8
Sostituire 1.0.8 con la versione corrispondente al file JAR installato.
Il numero di versione non corrisponde alla versione installata
Causa: l'attributo Python __version__ deriva dal synapseml pacchetto pip, che potrebbe differire dalla versione JAR installata da %%configure.
Correzione: verificare sia la configurazione spark che la versione del pacchetto pip:
# Check the JAR version from Spark config
print("JAR packages:", spark.conf.get("spark.jars.packages"))
# Check the pip package version
import synapse.ml.lightgbm
print("Pip package version:", synapse.ml.lightgbm.__version__)
Se le versioni non corrispondono, installare il pacchetto pip corrispondente:
%pip install synapseml==1.0.8