Instalar uma versão diferente do SynapseML no Fabric

O SynapseML (Synapse Machine Learning) está pré-instalado no Microsoft Fabric. Se precisares de uma versão específica, podes sobrepô-la usando o %%configure comando mágico num caderno Fabric.

Início rápido

Step Action Estimativa de tempo
1 Verificar pré-requisitos (espaço de trabalho, caderno) 2 minutos
2 Adicionar a célula %%configure para instalar a versão do SynapseML necessária 1 minuto
3 Verifique a versão instalada 1 minuto

Pré-requisitos

Antes de começar, certifique-se de que dispõe dos seguintes recursos:

Requisito Detalhes
Espaço de trabalho Microsoft Fabric Um espaço de trabalho com uma capacidade do Fabric (F2 ou superior) ou uma versão de avaliação do Fabric.
Caderno de tecido Crie um novo bloco de notas no ambiente Fabric Data Science ou Data Engineering.
Versão do ambiente de execução do Fabric Saiba qual é a versão do runtime da sua área de trabalho. As versões SynapseML e Spark Avro JAR devem coincidir com a versão Spark no seu tempo de execução. Consulte versões do runtime do Fabric.

Importante

O %%configure comando reinicia a sessão do Spark com novas definições. Executa-o como a primeira célula do teu caderno, antes de qualquer outro código. Se o executares depois de uma sessão do Spark começar, o -f flag força o reinício da sessão e todas as variáveis e estados são perdidos.

Observação

O %%configure comando mágico nos cadernos Fabric tem suporte oficial limitado. Não há garantia de um acordo de nível de serviço (SLA) ou compatibilidade futura com lançamentos oficiais. Para uma abordagem suportada, considere usar a personalização do ambiente Fabric para gerir bibliotecas.

Compatibilidade de runtime entre SynapseML e Fabric

Escolha a versão SynapseML e o Spark Avro JAR que correspondam à sua versão Spark em tempo de execução Fabric:

tempo de execução do Fabric Versão Spark Versão do SynapseML Spark Avro JAR
Tempo de execução 1.1 3.3 0.11.1 a 0.11.4 spark-avro_2.12:3.3.1
Tempo de execução 1.2 3.4 1.0.4 até 1.0.8 spark-avro_2.12:3.4.1
Tempo de Execução 1.3 3.5 1.0.4 até 1.0.8 spark-avro_2.12:3.5.1

Pode encontrar versões disponíveis do SynapseML no Maven Central.

Instale o SynapseML com o %%configure

O %%configure -f comando configura as propriedades da sessão do Spark, incluindo as coordenadas do pacote Maven. A -f bandeira obriga a reiniciar a sessão existente.

Exemplo para Fabric Runtime 1.2 (Spark 3.4)

Cole este código na primeira célula de um novo caderno Fabric e execute a célula:

%%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 uma versão diferente, substitua os números de versão em spark.jars.packages:

  • synapseml_2.12:<version>: a versão SynapseML que pretende (por exemplo, 1.0.4).
  • spark-avro_2.12:<spark-version>: deve corresponder à sua versão do Spark em tempo de execução Fabric (ver tabela de compatibilidade).

Exemplo para 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"
  }
}

Verifique a configuração do Spark

Depois de a célula ser executada, verifique se a sessão Spark aceitou a configuração. Execute este código numa nova célula:

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

Saída esperada (para o exemplo do Runtime 1.2):

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

Verifique a versão do SynapseML

Para verificar a instalação, execute o seguinte código numa célula nova. O número de versão deve corresponder à versão que instalaste.

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

Saída esperada (para o exemplo do Runtime 1.2):

SynapseML version: 1.0.8

Observação

No SynapseML 1.0 e posteriores, o synapse.ml.cognitive módulo está obsoleto. Utilize synapse.ml.services em vez disso para aceder a integrações com serviços de IA.

Reverter à versão padrão

Para reverter à versão pré-instalada do SynapseML, remova a %%configure célula e reinicie a sessão do notebook:

  1. Elimina ou comenta a %%configure célula.
  2. Selecione Sessão>Interromper sessão na barra de ferramentas do caderno.
  3. Executa qualquer célula para iniciar uma nova sessão com a configuração padrão.

Referência de configuração

O %%configure bloco inclui as seguintes propriedades Spark:

Property Purpose
spark.jars.packages Coordenadas Maven para o JAR do SynapseML e o JAR do Spark Avro.
spark.jars.repositories URL adicional do repositório Maven para artefactos SynapseML.
spark.jars.excludes Exclui dependências transitivas que entrem em conflito com bibliotecas Fabric pré-instaladas.
spark.yarn.user.classpath.first Dá prioridade aos JARs fornecidos pelo utilizador em relação aos pré-instalados.
spark.sql.parquet.enableVectorizedReader Desativa o leitor de Parquet vetorizado para evitar problemas de compatibilidade.
spark.sql.legacy.replaceDatabricksSparkAvro.enabled Permite compatibilidade com leitores Avro legados.

Troubleshooting

A célula de código %%configure não tem efeito

Causa: A célula %%configure não foi a primeira a ser executada, ou já existia uma sessão Spark ativa.

Correção: Selecione Sessão>Parar a sessão e depois execute a %%configure célula primeiro.

Falha ou expira o download do JAR

Causa: O repositório Maven está inacessível, ou as coordenadas da versão estão incorretas.

Correção: Verificar se a versão SynapseML existe no Maven Central. Verifica se a spark-avro versão corresponde à tua versão de runtime do Spark.

ClassNotFoundException ou NoSuchMethodError em tempo de execução

Causa: A versão SynapseML não é compatível com a versão Spark em tempo de execução do Fabric.

Correção: Use a tabela de compatibilidade para selecionar a combinação correta de versões.

ImportError: Nenhum módulo chamado 'synapse.ml'

Causa: O pacote wrapper SynapseML Python não está instalado no ambiente do notebook.

Correção: Numa célula nova, executa:

%pip install synapseml==1.0.8

Substitui 1.0.8 pela versão que corresponde ao JAR que instalaste.

O número de versão não corresponde à versão instalada

Causa: O atributo Python __version__ vem do synapseml pacote pip, que pode diferir da versão JAR instalada por %%configure.

Correção: Verifique tanto a configuração do Spark como a versão do pacote 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 as versões não coincidirem, instala o pacote pip correspondente:

%pip install synapseml==1.0.8