次の方法で共有


Azure Synapse Analytics で Apache Spark プール用のライブラリを管理する

Spark アプリケーション用に使用または更新する Scala、Java、R (プレビュー)、または Python パッケージを識別したら、それらをインストールしたり、Spark プールから削除したりできます。 プール レベルのライブラリは、プールで実行されているすべてのノートブックおよびジョブで使用できます。

Spark プールにライブラリをインストールするには、主に次の 2 つの方法があります。

  • ワークスペース パッケージとしてアップロードされたワークスペース ライブラリをインストールします。
  • Python ライブラリを更新するには、requirements.txt または Conda environment.yml 環境仕様ファイルを指定して、PyPI や Conda-Forge などのリポジトリからパッケージをインストールします。 詳細については、「環境仕様の形式」セクションを参照してください。

変更内容が保存された後、Spark ジョブによってインストールが実行され、結果として得られた環境が後の再利用のためにキャッシュされます。 このジョブが完了すると、新しい Spark ジョブまたはノートブック セッションでは更新されたプール ライブラリが使用されます。

重要

  • インストールしているパッケージが大きいか、またはインストールに長い時間がかかる場合は、Spark インスタンスの起動時間が影響を受けます。
  • PySpark、Python、Scala/Java、.NET、R、または Spark バージョンの変更はサポートされていません。
  • PyPI、Conda-Forge、または既定の Conda チャネルなどの外部リポジトリからのパッケージのインストールは、データ流出防止が有効になっているワークスペース内ではサポートされていません。

Synapse Studio または Azure portal からパッケージを管理する

Spark プール ライブラリは、Synapse Studio または Azure portal のどちらからでも管理できます。

  1. Azure portal で、Azure Synapse Analytics ワークスペースに移動します。

  2. [分析プール] セクションから、[Apache Spark プール] タブを選択し、一覧から Spark プールを選択します。

  3. Spark プールの [設定] セクションから [パッケージ] を選択します。

    環境構成ファイルのアップロード ボタンが強調表示されていることを示すスクリーンショット。

  4. Python フィード ライブラリの場合、ページの [パッケージ] セクションにあるファイル セレクターを使用して、環境構成ファイルをアップロードします。

  5. 追加のワークスペース パッケージを選択して、Jar、Wheel、または Tar.gz ファイルをプールに追加することもできます。

  6. [ワークスペース パッケージ] セクションから非推奨のパッケージを削除することもできます。それにより、プールではこれらのパッケージがアタッチされなくなります。

  7. 変更内容を保存すると、システム ジョブがトリガーされ、指定されたライブラリがインストールおよびキャッシュされます。 このプロセスにより、セッションの全体的な起動時間を短縮できます。

  8. このジョブが正常に完了すると、すべての新しいセッションで、更新されたプール ライブラリが選択されます。

重要

[新しい設定を強制する] オプションを選択すると、選択された Spark プールの現在のセッションがすべて終了します。 セッションが終了したら、プールが再起動するまで待つ必要があります。

この設定がオフになっている場合は、現在の Spark セッションが終了するまで待つか、またはそれを手動で停止する必要があります。 セッションが終了したら、プールを再起動させる必要があります。

インストールの進行状況の追跡

システム予約 Spark ジョブは、新しい一連のライブラリを使用してプールが更新されるたびに開始されます。 この Spark ジョブは、ライブラリのインストールの状態を監視するために役立ちます。 ライブラリの競合やその他の問題のためにインストールが失敗した場合、Spark プールは以前の状態または既定の状態に戻ります。

さらに、ユーザーはインストール ログを検査して依存関係の競合を識別するか、またはプールの更新中にどのライブラリがインストールされたかを確認できます。

これらのログを表示するには:

  1. Synapse Studio で、[監視] タブの Spark アプリケーションの一覧に移動します。

  2. プールの更新に対応するシステム Spark アプリケーション ジョブを選択します。 これらのシステム ジョブは、SystemReservedJob-LibraryManagement というタイトルの下で実行されています。

    システム予約済みライブラリ ジョブが強調表示されているスクリーンショット。

  3. driver および stdout ログを表示するように切り替えます。

  4. これらの結果には、依存関係のインストールに関連するログが含まれています。

    システム予約済みライブラリ ジョブの結果が強調表示されているスクリーンショット。

環境仕様の形式

PIP requirements.txt

requirements.txt ファイル (pip freeze コマンドからの出力) を使用して、環境をアップグレードできます。 プールが更新されると、このファイルに記載されているパッケージが PyPI からダウンロードされます。 その後、完全な依存関係がキャッシュされ、後でプールを再利用するために保存されます。

次のスニペットは、要件ファイルの形式を示しています。 PyPI パッケージ名が正確なバージョンと共にリストされます。 このファイルは、pip freeze のリファレンス ドキュメントで説明されている形式に従います。

この例では、特定のバージョンを固定しています。

absl-py==0.7.0
adal==1.2.1
alabaster==0.7.10

YML 形式

さらに、environment.yml ファイルを指定してプール環境を更新することもできます。 このファイルに記載されているパッケージが、既定の Conda チャネル、Conda-Forge、PyPI からダウンロードされます。 構成オプションを使用して、他のチャネルを指定したり、既定のチャネルを削除したりできます。

この例では、チャネルと Conda/PyPI の依存関係を指定します。

name: stats2
channels:
- defaults
dependencies:
- bokeh
- numpy
- pip:
  - matplotlib
  - koalas==1.7.0

この environment.yml ファイルから環境を作成する方法の詳細については、環境のアクティブ化に関するページを参照してください。