Fabric に別のバージョンの SynapseML をインストールする

SynapseML (Synapse Machine Learning) は、Microsoft Fabricにプレインストールされています。 特定のバージョンが必要な場合は、Fabric ノートブックの %%configure マジック コマンドを使用してオーバーライドできます。

簡単スタート

Step アクション 時間の見積もり
1 前提条件 (ワークスペース、ノートブック) を確認する 2 分
2 %%configureセルを追加して、必要な SynapseML バージョンをインストールします 1 分
3 インストールされているバージョンを確認する 1 分

Prerequisites

開始する前に、次のリソースがあることを確認します。

Requirement Details
Microsoft Fabric ワークスペース Fabric キャパシティ (F2 以上) または Fabric の試用版があるワークスペース。
Fabric ノートブック Fabric データ サイエンスまたはデータ エンジニアリング エクスペリエンスで新しいノートブックを作成します。
Fabric ランタイム バージョン ワークスペース ランタイムのバージョンを把握します。 SynapseML と Spark Avro JAR のバージョンは、ランタイムの Spark バージョンと一致している必要があります。 Fabric ランタイム バージョンを参照してください。

Important

%%configure コマンドは、新しい設定で Spark セッションを再起動します。 ノートブックの最初の セル として、他のコードの前に実行します。 Spark セッションの開始後に実行すると、 -f フラグによって強制的にセッションが再起動され、すべての変数と状態が失われます。

Fabricノートブックの%%configureマジックコマンドには、公式サポートが限られています。 サービス レベル アグリーメント (SLA) や公式リリースとの将来の互換性は保証されません。 サポートされている方法については、Fabric環境のカスタマイズを使用してライブラリを管理することを検討してください。

SynapseML と Fabric ランタイムの互換性

Fabric ランタイム Spark バージョンに一致する SynapseML バージョンと Spark Avro JAR を選択します。

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

Maven Central で使用可能な SynapseML バージョンを確認できます。

%%configure を使用して SynapseML をインストールする

%%configure -f コマンドは、Maven パッケージ座標を含む Spark セッション プロパティを構成します。 -f フラグは、既存のセッションを強制的に再起動します。

Fabric Runtime 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>: Fabric ランタイム Spark のバージョンと一致する必要があります (互換性テーブルを参照)。

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

Spark の構成を確認する

セルが実行されたら、Spark セッションが構成を受け入れたことを確認します。 次のコードを新しいセルで実行します。

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

期待される出力 (Runtime 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__}")

期待される出力 (Runtime 1.2 の例の場合):

SynapseML version: 1.0.8

SynapseML 1.0 以降では、 synapse.ml.cognitive モジュールは非推奨です。 代わりに、 synapse.ml.services を使用して AI サービス統合にアクセスします。

既定のバージョンに戻す

プレインストールされている SynapseML バージョンに戻すには、 %%configure セルを削除し、ノートブック セッションを再起動します。

  1. %%configure セルを削除またはコメント アウトします。
  2. ノートブック ツール バーの [セッション>ストップ セッション ] を選択します。
  3. 任意のセルを実行して、既定の構成で新しいセッションを開始します。

構成参照

%%configure ブロックには、次の Spark プロパティが含まれています。

財産 Purpose
spark.jars.packages SynapseML JAR と Spark Avro JAR の Maven 座標。
spark.jars.repositories SynapseML アーティファクト向けの追加用 Maven リポジトリ URL。
spark.jars.excludes プレインストールされているFabric ライブラリと競合する推移的な依存関係を除外します。
spark.yarn.user.classpath.first プレインストールされている JAR よりも、ユーザーが指定した 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 に一致するバージョンに置き換えます。

バージョン番号がインストールされているバージョンと一致しない

原因: Python __version__属性は、synapseml pip パッケージから取得されます。これは、%%configureによってインストールされた JAR バージョンとは異なる場合があります。

修正: 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