Een andere versie van SynapseML installeren in Fabric

SynapseML (Synapse Machine Learning) is vooraf geïnstalleerd op Microsoft Fabric. Als u een specifieke versie nodig hebt, kunt u deze overschrijven met behulp van de %%configure magic-opdracht in een Fabric notebook.

Snel starten

Stap Action Tijdsraming
1 Controleer de vereisten (werkruimte, notebook) 2 min.
2 Cel toevoegen %%configure om de SynapseML-versie te installeren die u nodig hebt 1 min.
3 De geïnstalleerde versie controleren 1 min.

Prerequisites

Voordat u begint, moet u ervoor zorgen dat u over de volgende resources beschikt:

Requirement Details
Microsoft Fabric werkruimte Een werkruimte met een Fabric-capaciteit (F2 of hoger) of een Fabric-proefversie.
Fabric notitieboek Maak een nieuw notebook in de Fabric Data Science- of Data Engineering-ervaring.
Fabric-runtimeversie Ken de runtimeversie van uw werkruimte. De Versies van SynapseML en Spark Avro JAR moeten overeenkomen met de Spark-versie in uw runtime. Zie Fabric runtimeversies.

Important

Met %%configure de opdracht wordt de Spark-sessie opnieuw gestart met nieuwe instellingen. Voer deze uit als de eerste cel in uw notebook, voordat u andere code gebruikt. Als u deze uitvoert nadat een Spark-sessie is gestart, dwingt de -f vlag het opnieuw opstarten van de sessie af en gaan alle variabelen en status verloren.

Opmerking

De %%configure magic-opdracht in Fabric notebooks heeft beperkte officiële ondersteuning. Er is geen garantie voor een SLA (Service Level Agreement) of toekomstige compatibiliteit met officiële releases. Voor een ondersteunde benadering kunt u overwegen om Fabric omgevingsaanpassing te gebruiken om bibliotheken te beheren.

Compatibiliteit met SynapseML en Fabric runtime

Kies de SynapseML-versie en Spark Avro JAR die overeenkomen met uw Fabric Runtime Spark-versie:

Fabric runtime-omgeving Spark-versie SynapseML-versie Spark Avro JAR
Runtime 1.1 3.3 0.11.1 tot en met 0.11.4 spark-avro_2.12:3.3.1
Runtime 1.2 3.4 1.0.4 tot en met 1.0.8 spark-avro_2.12:3.4.1
Runtime 1.3 3.5 1.0.4 tot en met 1.0.8 spark-avro_2.12:3.5.1

U vindt beschikbare SynapseML-versies op Maven Central.

SynapseML installeren met %%configure

Met de %%configure -f opdracht configureert u spark-sessie-eigenschappen, inclusief Maven-pakketcoördinaten. De -f vlag dwingt een herstart van de bestaande sessie af.

Voorbeeld voor Fabric Runtime 1.2 (Spark 3.4)

Plak deze code in de eerste cel van een nieuw Fabric notebook en voer de cel uit:

%%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"
  }
}

Als u een andere versie wilt installeren, vervangt u de versienummers in spark.jars.packages:

  • synapseml_2.12:<version>: de Gewenste SynapseML-versie (bijvoorbeeld 1.0.4).
  • spark-avro_2.12:<spark-version>: moet overeenkomen met uw Fabric Runtime Spark-versie (zie de compatibiliteitstabel).

Voorbeeld voor 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"
  }
}

De Spark-configuratie controleren

Nadat de cel is uitgevoerd, controleer of de Spark-sessie de configuratie heeft geaccepteerd. Voer deze code uit in een nieuwe cel:

print(spark.conf.get("spark.jars.packages"))

Verwachte uitvoer (voor het voorbeeld runtime 1.2):

com.microsoft.azure:synapseml_2.12:1.0.8,org.apache.spark:spark-avro_2.12:3.4.1

SynapseML-versie controleren

Voer de volgende code uit in een nieuwe cel om de installatie te controleren. Het versienummer moet overeenkomen met de versie die u hebt geïnstalleerd.

import synapse.ml.lightgbm
print(f"SynapseML version: {synapse.ml.lightgbm.__version__}")

Verwachte uitvoer (voor het voorbeeld runtime 1.2):

SynapseML version: 1.0.8

Opmerking

In SynapseML 1.0 en hoger is de synapse.ml.cognitive module afgeschaft. Gebruik synapse.ml.services in plaats daarvan voor toegang tot AI-service-integraties.

Terugkeren naar de standaardversie

Als u wilt terugkeren naar de vooraf geïnstalleerde SynapseML-versie, verwijdert u de %%configure cel en start u de notebooksessie opnieuw:

  1. Verwijder de %%configure-cel of plaats deze in commentaar.
  2. Selecteer Sessie>Sessie stoppen op de werkbalk van het notebook.
  3. Voer een cel uit om een nieuwe sessie te starten met de standaardconfiguratie.

Configuratiegids

Het %%configure blok bevat de volgende Spark-eigenschappen:

Property Purpose
spark.jars.packages Maven-coördinaten voor de SynapseML JAR en Spark Avro JAR.
spark.jars.repositories Aanvullende URL van maven-opslagplaats voor SynapseML-artefacten.
spark.jars.excludes Sluit transitieve afhankelijkheden uit die conflicteren met vooraf geïnstalleerde Fabric bibliotheken.
spark.yarn.user.classpath.first Geeft prioriteit aan door de gebruiker geleverde JAR's ten opzichte van vooraf geïnstalleerde.
spark.sql.parquet.enableVectorizedReader Hiermee schakelt u de gevectoriseerde Parquet-lezer uit om compatibiliteitsproblemen te voorkomen.
spark.sql.legacy.replaceDatabricksSparkAvro.enabled Schakelt verouderde Avro-lezercompatibiliteit in.

Troubleshooting

%%configure cel wordt niet van kracht

Oorzaak: De %%configure cel was niet de eerste cel die moest worden uitgevoerd of er was al een Spark-sessie actief.

Oplossing: Selecteer sessie>stoppen sessie en voer vervolgens eerst de %%configure cel uit.

Het downloaden van een JAR-bestand mislukt of er treedt een time-out op

Oorzaak: De Maven-opslagplaats is onbereikbaar of de versiecoördinaten zijn onjuist.

Oplossing: Controleer of de SynapseML-versie bestaat op Maven Central. Controleer of de spark-avro versie overeenkomt met uw Spark Runtime-versie.

ClassNotFoundException of NoSuchMethodError tijdens de uitvoering

Oorzaak: De SynapseML-versie is niet compatibel met de Fabric Runtime Spark-versie.

Oplossing: Gebruik de compatibiliteitstabel om de juiste versiecombinatie te selecteren.

ImportError: Geen module met de naam 'synapse.ml'

Oorzaak: het SynapseML-pakket Python wrapper is niet geïnstalleerd in de notebookomgeving.

Oplossing: Voer in een nieuwe cel het volgende uit:

%pip install synapseml==1.0.8

Vervang 1.0.8 door de versie die overeenkomt met de JAR die u hebt geïnstalleerd.

Versienummer komt niet overeen met de geïnstalleerde versie

Oorzaak: Het kenmerk Python __version__ komt uit het synapseml pip-pakket, wat kan verschillen van de JAR-versie die door %%configureis geïnstalleerd.

Oplossing: controleer zowel de Spark-configuratie als de pip-pakketversie:

# 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__)

Als de versies niet overeenkomen, installeert u het overeenkomende PIP-pakket:

%pip install synapseml==1.0.8