Instalación de una versión diferente de SynapseML en Fabric

SynapseML (synapse Machine Learning) está preinstalado en Microsoft Fabric. Si necesita una versión específica, puede anularla mediante el comando mágico %%configure en un cuaderno de notas de Fabric.

Inicio rápido

Step Action Estimación de tiempo
1 Comprobación de los requisitos previos (área de trabajo, cuaderno) 2 min
2 Agregar %%configure celda para instalar la versión de SynapseML que necesita 1 minuto
3 Comprobación de la versión instalada 1 minuto

Prerequisites

Antes de comenzar, asegúrese de que tiene los siguientes recursos:

Requisito Details
área de trabajo de Microsoft Fabric Un área de trabajo con una capacidad de Fabric (F2 o superior) o una versión de prueba de Fabric.
Cuaderno de tela Cree un cuaderno nuevo en la experiencia Fabric Data Science o Data Engineering.
Versión de Fabric en tiempo de ejecución Conozca la versión del entorno de ejecución del área de trabajo. Las versiones JAR de SynapseML y Spark Avro deben coincidir con la versión de Spark en el entorno de ejecución. Consulte versiones del entorno de ejecución de Fabric.

Importante

El %%configure comando reinicia la sesión de Spark con la nueva configuración. Ejecútelo como la primera celda del cuaderno, antes que cualquier otro código. Si lo ejecuta después de que se inicie una sesión de Spark, la opción -f fuerza el reinicio de la sesión y se pierden todas las variables y el estado.

Nota:

El %%configure comando mágico en los cuadernos de Fabric tiene soporte oficial limitado. No hay ninguna garantía de un acuerdo de nivel de servicio (SLA) o compatibilidad futura con versiones oficiales. Para obtener un enfoque compatible, considere la posibilidad de usar la personalización del entorno de Fabric para administrar las bibliotecas.

Compatibilidad en tiempo de ejecución de SynapseML y Fabric

Elija la versión de SynapseML y el archivo JAR de Spark Avro que correspondan a la versión de Spark del entorno de ejecución de Fabric:

tiempo de ejecución de Fabric Versión de Spark Versión de SynapseML Spark Avro JAR
Runtime 1.1 3.3 0.11.1 a 0.11.4 spark-avro_2.12:3.3.1
Runtime 1.2 3.4 De 1.0.4 a 1.0.8 spark-avro_2.12:3.4.1
Runtime 1.3 3,5 De 1.0.4 a 1.0.8 spark-avro_2.12:3.5.1

Puede encontrar las versiones de SynapseML disponibles en Maven Central.

Instalación de SynapseML con %%configure

El %%configure -f comando configura las propiedades de la sesión de Spark, incluidas las coordenadas del paquete de Maven. El indicador -f fuerza el reinicio de la sesión existente.

Ejemplo de Fabric Runtime 1.2 (Spark 3.4)

Pegue este código en la primera celda de un cuaderno de Fabric nuevo y ejecute la celda:

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

Para instalar una versión diferente, reemplace los números de versión en spark.jars.packages:

  • synapseml_2.12:<version>: la versión de SynapseML que desea (por ejemplo, 1.0.4).
  • spark-avro_2.12:<spark-version>: debe coincidir con la versión de Spark en tiempo de ejecución de Fabric (consulte la tabla de compatibilidad).

Ejemplo de 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"
  }
}

Comprobación de la configuración de Spark

Una vez que se ejecute la celda, compruebe que la sesión de Spark aceptó la configuración. Ejecute este código en una nueva celda:

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

Salida esperada (para el ejemplo runtime 1.2):

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

Comprobación de la versión de SynapseML

Para comprobar la instalación, ejecute el código siguiente en una nueva celda. El número de versión debe coincidir con la versión instalada.

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

Salida esperada (para el ejemplo runtime 1.2):

SynapseML version: 1.0.8

Nota:

En SynapseML 1.0 y versiones posteriores, el synapse.ml.cognitive módulo está en desuso. Utiliza synapse.ml.services en su lugar para acceder a las integraciones de servicios de IA.

Revertir a la versión predeterminada

Para revertir a la versión de SynapseML preinstalada, quite la %%configure celda y reinicie la sesión del cuaderno:

  1. Elimine o comente la %%configure celda.
  2. Seleccione Session> en la barra de herramientas del cuaderno.
  3. Ejecute cualquier celda para iniciar una nueva sesión con la configuración predeterminada.

Referencia de configuración

El %%configure bloque incluye estas propiedades de Spark:

Propiedad propósito
spark.jars.packages Coordenadas de Maven para los JAR de SynapseML y Spark Avro.
spark.jars.repositories Dirección URL adicional del repositorio de Maven para artefactos de SynapseML.
spark.jars.excludes Excluye las dependencias transitivas que entran en conflicto con las bibliotecas de Fabric preinstaladas.
spark.yarn.user.classpath.first Prioriza los JAR proporcionados por el usuario sobre los preinstalados.
spark.sql.parquet.enableVectorizedReader Deshabilita el lector de Parquet vectorizado para evitar problemas de compatibilidad.
spark.sql.legacy.replaceDatabricksSparkAvro.enabled Activa la compatibilidad con versiones anteriores del lector de Avro.

Troubleshooting

El comando %%configure no tiene efecto

Causa: la %%configure celda no era la primera celda que se ejecutaría o una sesión de Spark ya estaba activa.

Solución: seleccione Sesión>Detener sesión y, a continuación, ejecute primero la celda %%configure.

Se produce un error en la descarga de JAR o se agota el tiempo de espera de la descarga

Causa: El repositorio de Maven no es accesible o las coordenadas de versión son incorrectas.

Corrección: compruebe que la versión de SynapseML existe en Maven Central. Compruebe que la spark-avro versión coincide con la versión de su entorno de ejecución de Spark.

ClassNotFoundException o NoSuchMethodError en tiempo de ejecución

Causa: La versión de SynapseML no es compatible con la versión de Spark en tiempo de ejecución de Fabric.

Corrección: use la tabla de compatibilidad para seleccionar la combinación de versión correcta.

ImportError: no hay ningún módulo denominado "synapse.ml"

Causa: El paquete de envoltura de Python de SynapseML no está instalado en el entorno del notebook.

Corrección: En una nueva celda, ejecute:

%pip install synapseml==1.0.8

Reemplace por 1.0.8 la versión que coincida con el archivo JAR que instaló.

El número de versión no coincide con la versión instalada

Causa: el atributo Python __version__ procede del synapseml paquete pip, que puede diferir de la versión jar instalada por %%configure.

Corrección: compruebe la configuración de Spark y la versión del paquete 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__)

Si las versiones no coinciden, instale el paquete pip coincidente:

%pip install synapseml==1.0.8