Установка другой версии SynapseML в Fabric

SynapseML (Synapse Машинное обучение) предварительно установлен на Microsoft Fabric. Если вам нужна определенная версия, ее можно переопределить с помощью %%configure волшебной команды в записной книжке Fabric.

Быстрый старт

Step Действие Оценка времени
1 Проверьте предварительные условия (рабочая область, блокнот) 2 мин
2 Добавление %%configure ячейки для установки необходимой версии SynapseML 1 мин.
3 Проверка установленной версии 1 мин.

Prerequisites

Перед началом работы убедитесь, что у вас есть следующие ресурсы:

Требование Сведения
Рабочая область Microsoft Fabric Рабочая область с емкостью Fabric (F2 или выше) или пробной лицензией Fabric.
записная книжка Fabric Создайте новый блокнот в среде Fabric Data Science или Data Engineering.
версия среды выполнения Fabric Узнайте версию среды выполнения в рабочей области. Версии SynapseML и Spark Avro JAR должны соответствовать версии Spark в среде выполнения. См. версии среды выполнения Fabric.

Important

Команда %%configure перезапускает сеанс Spark с новыми параметрами. Запустите ее в качестве первой ячейки в записной книжке перед любым другим кодом. Если вы выполняете это после запуска сеанса Spark, флаг -f принудительно перезапускает сеанс, и все переменные и состояние теряются.

Замечание

Команда %%configure magic в записных книжках Fabric официально поддерживается в ограниченной степени. Нет гарантии соглашения об уровне обслуживания (SLA) или будущей совместимости с официальными выпусками. В качестве поддерживаемого решения рассмотрите возможность использования настройки среды Fabric для управления библиотеками.

Совместимость SynapseML со средой выполнения Fabric

Выберите версию SynapseML и SPARK Avro JAR, соответствующую версии Fabric среды выполнения Spark:

среда выполнения Fabric Версия Spark Версия SynapseML Spark Avro JAR
Среда выполнения 1.1 3.3 0.11.1–0.11.4 spark-avro_2.12:3.3.1
Среда выполнения 1.2 3.4 1.0.4–1.0.8 spark-avro_2.12:3.4.1
Среда выполнения 1.3 3.5 1.0.4–1.0.8 spark-avro_2.12:3.5.1

Доступные версии SynapseML можно найти в Maven Central.

Установка SynapseML с помощью %%configure

Команда %%configure -f настраивает свойства сеанса Spark, включая координаты пакета Maven. Флаг -f заставляет перезапуск существующего сеанса.

Пример для среды выполнения Fabric 1.2 (Spark 3.4)

Вставьте этот код в первую ячейку новой записной книжки Fabric и запустите ячейку:

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

Чтобы установить другую версию, замените номера версий в spark.jars.packages:

  • synapseml_2.12:<version>: нужная версия SynapseML (например, 1.0.4).
  • spark-avro_2.12:<spark-version>: должен соответствовать версии Spark в среде выполнения Fabric (см. таблицу совместимости).

Пример для среды выполнения Fabric 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"
  }
}

Проверка конфигурации Spark

После запуска ячейки убедитесь, что сеанс Spark принял конфигурацию. Запустите этот код в новой ячейке:

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

Ожидаемые выходные данные (для примера среды выполнения 1.2):

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

Проверка версии SynapseML

Чтобы проверить установку, выполните следующий код в новой ячейке. Номер версии должен соответствовать установленной версии.

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

Ожидаемые выходные данные (для примера среды выполнения 1.2):

SynapseML version: 1.0.8

Замечание

В SynapseML 1.0 и более поздних версиях модуль synapse.ml.cognitive устарел. Вместо этого используйте synapse.ml.services для доступа к интеграции служб ИИ.

Вернуться к версии по умолчанию

Чтобы вернуться к предварительно установленной версии SynapseML, удалите %%configure ячейку и перезапустите сеанс записной книжки:

  1. Удалите или закомментируйте ячейку %%configure .
  2. Выберите Session>Stop session на панели инструментов записной книжки.
  3. Запустите любую ячейку, чтобы запустить новый сеанс с конфигурацией по умолчанию.

Справочник по конфигурации

Блок %%configure включает следующие свойства Spark:

Property Purpose
spark.jars.packages Координаты Maven для JAR-файла SynapseML и JAR-файла Spark Avro.
spark.jars.repositories Дополнительный URL-адрес репозитория Maven для артефактов SynapseML.
spark.jars.excludes Исключает транзитивные зависимости, конфликтующие с предустановленными Fabric библиотеками.
spark.yarn.user.classpath.first Определяет приоритеты предоставленных пользователем JAR по сравнению с предварительно установленными.
spark.sql.parquet.enableVectorizedReader Отключает векторное средство чтения Parquet, чтобы избежать проблем совместимости.
spark.sql.legacy.replaceDatabricksSparkAvro.enabled Включает совместимость со старым считывателем Avro.

Troubleshooting

ячейка %%configure не вступает в силу

Причина: ячейка %%configure была запущена не первой, или сеанс Spark уже был активен.

Исправление: Выберите Сеанс>Остановить сеанс, а затем сначала запустите ячейку %%configure.

Не удается загрузить JAR или истекает время ожидания

Причина: репозиторий Maven недоступен или координаты версии неверны.

Исправление. Убедитесь, что версия SynapseML существует в Maven Central. Убедитесь, что spark-avro версия соответствует версии среды выполнения Spark.

ClassNotFoundException или NoSuchMethodError во время выполнения

Причина. Версия SynapseML несовместима с версией Fabric среды выполнения Spark.

Исправление. Используйте таблицу совместимости , чтобы выбрать правильную комбинацию версий.

ImportError: нет модуля с именем "synapse.ml"

Причина. Пакет оболочки SynapseML Python не установлен в среде записной книжки.

Исправление: в новой ячейке выполните следующую команду:

%pip install synapseml==1.0.8

Замените 1.0.8 на версию, которая соответствует JAR-файлу, который вы установили.

Номер версии не соответствует установленной версии.

Причина: атрибут __version__ Python поступает из пакета pip synapseml, который может отличаться от версии JAR, установленной с помощью %%configure.

Исправление: проверьте конфигурацию Spark и версию пакета 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__)

Если версии не соответствуют, установите соответствующий пакет pip:

%pip install synapseml==1.0.8