Menginstal versi SynapseML yang berbeda di Fabric

SynapseML (Synapse Pembelajaran Mesin) telah diinstal sebelumnya pada Microsoft Fabric. Jika Anda memerlukan versi tertentu, Anda dapat mengambil alihnya dengan menggunakan %%configure perintah ajaib di buku catatan Fabric.

Cepat Mulai

Step Action Perkiraan waktu
1 Memverifikasi prasyarat (ruang kerja, buku catatan) 2 menit
2 Menambahkan %%configure sel untuk menginstal versi SynapseML yang Anda butuhkan 1 menit
3 Memverifikasi versi yang terinstal 1 menit

Prerequisites

Sebelum memulai, pastikan Anda memiliki sumber daya berikut:

Persyaratan Details
ruang kerja Microsoft Fabric Ruang kerja dengan kapasitas Fabric (F2 atau lebih tinggi) atau versi uji coba Fabric.
Buku Catatan Fabric Buat notebook baru di lingkungan Fabric Data Science atau Data Engineering.
versi runtime Fabric Ketahui versi runtime workspace Anda. Versi JAR SynapseML dan Spark Avro harus cocok dengan versi Spark di runtime Anda. Lihat versi runtime Fabric.

Important

Perintah %%configure memulai ulang sesi Spark dengan pengaturan baru. Jalankan ini sebagai sel pertama di notebook Anda, sebelum kode lain apa pun. Jika Anda menjalankannya setelah sesi Spark dimulai, -f bendera memaksa mulai ulang sesi dan semua variabel dan status hilang.

Nota

%%configure Perintah ajaib di notebook Fabric memiliki dukungan resmi terbatas. Tidak ada jaminan perjanjian tingkat layanan (SLA) atau kompatibilitas di masa mendatang dengan rilis resmi. Untuk pendekatan yang didukung, pertimbangkan untuk menggunakan kustomisasi lingkungan Fabric untuk mengelola pustaka.

Kompatibilitas runtime SynapseML dan Fabric

Pilih versi SynapseML dan Spark Avro JAR yang cocok dengan versi Spark runtime Fabric Anda:

runtime Fabric Versi Spark Versi SynapseML Spark Avro JAR
Runtime 1.1 3.3 0.11.1 hingga 0.11.4 spark-avro_2.12:3.3.1
Runtime 1.2 3.4 1.0.4 hingga 1.0.8 spark-avro_2.12:3.4.1
Runtime 1.3 3.5 1.0.4 hingga 1.0.8 spark-avro_2.12:3.5.1

Anda dapat menemukan versi SynapseML yang tersedia di Maven Central.

Instal SynapseML dengan %%configure

Perintah %%configure -f mengonfigurasi properti sesi Spark, termasuk koordinat paket Maven. Bendera -f memaksa menghidupkan ulang sesi yang ada.

Contoh untuk Fabric Runtime 1.2 (Spark 3.4)

Tempelkan kode ini ke sel pertama buku catatan Fabric baru dan jalankan sel:

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

Untuk menginstal versi yang berbeda, ganti nomor versi di spark.jars.packages:

  • synapseml_2.12:<version>: versi SynapseML yang Anda inginkan (misalnya, 1.0.4).
  • spark-avro_2.12:<spark-version>: harus cocok dengan versi Spark runtime Fabric Anda (lihat tabel kompatibilitas).

Contoh untuk 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"
  }
}

Memverifikasi konfigurasi Spark

Setelah sel berjalan, verifikasi bahwa sesi Spark menerima konfigurasi. Jalankan kode ini di sel baru:

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

Output yang diharapkan (untuk contoh Runtime 1.2):

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

Periksa versi SynapseML

Untuk memverifikasi penginstalan, jalankan kode berikut di sel baru. Nomor versi harus cocok dengan versi yang Anda instal.

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

Output yang diharapkan (untuk contoh Runtime 1.2):

SynapseML version: 1.0.8

Nota

Di SynapseML 1.0 dan versi yang lebih baru, modul synapse.ml.cognitive sudah usang. Gunakan synapse.ml.services sebagai gantinya untuk mengakses integrasi layanan AI.

Kembali ke versi default

Untuk kembali ke versi SynapseML yang telah diinstal sebelumnya, hapus %%configure sel dan mulai ulang sesi buku catatan:

  1. Hapus atau jadikan sel %%configure sebagai komentar.
  2. Pilih Sesi>Hentikan sesi di toolbar buku catatan.
  3. Jalankan sel apa pun untuk memulai sesi baru dengan konfigurasi default.

Referensi konfigurasi

%%configure Blok ini mencakup properti Spark ini:

Property Kegunaan
spark.jars.packages Koordinat Maven untuk JAR SynapseML dan JAR Spark Avro.
spark.jars.repositories URL repositori Maven tambahan untuk artefak SynapseML.
spark.jars.excludes Mengecualikan dependensi transitif yang bertentangan dengan pustaka Fabric yang telah diinstal sebelumnya.
spark.yarn.user.classpath.first Memprioritaskan JAR yang disediakan pengguna daripada yang telah diinstal sebelumnya.
spark.sql.parquet.enableVectorizedReader Menonaktifkan pembaca Parquet vektor untuk menghindari masalah kompatibilitas.
spark.sql.legacy.replaceDatabricksSparkAvro.enabled Mengaktifkan kompatibilitas dengan pembaca Avro lama.

Troubleshooting

sel %%configure tidak berlaku

Penyebab: Sel %%configure bukan sel pertama yang dijalankan, atau sesi Spark sudah aktif.

Perbaiki: Pilih Sesi>Hentikan sesi, lalu jalankan %%configure sel terlebih dahulu.

Pengunduhan JAR gagal atau waktu habis

Penyebab: Repositori Maven tidak dapat dijangkau, atau koordinat versi salah.

Perbaikan: Verifikasi bahwa versi SynapseML ada di Maven Central. Periksa apakah versi spark-avro cocok dengan versi runtime Spark Anda.

ClassNotFoundException atau NoSuchMethodError saat dijalankan

Penyebab: Versi SynapseML tidak kompatibel dengan versi Spark runtime Fabric.

Perbaikan: Gunakan tabel kompatibilitas untuk memilih kombinasi versi yang benar.

ImportError: Tidak ada modul bernama 'synapse.ml'

Penyebab: Paket pembungkus Python SynapseML tidak diinstal di lingkungan notebook.

Perbaikan: Di sel baru, jalankan:

%pip install synapseml==1.0.8

Ganti 1.0.8 dengan versi yang cocok dengan JAR yang Anda instal.

Nomor versi tidak cocok dengan versi yang diinstal

Penyebab: Atribut Python __version__ berasal dari synapseml paket pip, yang mungkin berbeda dari versi JAR yang diinstal oleh %%configure.

Perbaikan: Verifikasi konfigurasi Spark dan versi paket 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__)

Jika versi tidak cocok, instal paket pip yang cocok:

%pip install synapseml==1.0.8