次の方法で共有


Microsoft Fabric で Apache Spark ライブラリを管理する

ライブラリは、PyPI の Python パッケージ、CRAN の R パッケージ、Java JAR などの再利用可能なコード パッケージであり、ノートブックと Spark ジョブ定義にインポートして、ゼロから記述せずに機能を追加できます。 Microsoft Fabric では、ライブラリの管理と使用に役立つ複数のメカニズムが提供されています。

  • 組み込みのライブラリ: 各 Fabric Spark ランタイムには、人気のあるプレインストール済みライブラリの豊富なセットが用意されています。 すべての組み込みライブラリの一覧は、Fabric Spark ランタイムに関する記事に記載されています。
  • パブリック ライブラリ: パブリック ライブラリは、現在サポートされている PyPI や Conda などのリポジトリから提供されます。
  • カスタム ライブラリ: カスタム ライブラリとは、自身または自身の組織がビルドしたコードのことです。 Fabric では、それらは .whl.jar、および .tar.gz 形式でサポートされています。 R 言語については、Fabric では .tar.gz のみがサポートされています。 Python カスタム ライブラリの場合は、.whl 形式を使用します。

ライブラリ管理のベスト プラクティスの概要

以下のシナリオでは、Microsoft Fabric でライブラリを使うときのベスト プラクティスについて説明します。

シナリオ 1: 管理者がワークスペースの既定のライブラリを設定する

既定のライブラリを設定するには、ワークスペースの管理者である必要があります。 管理者として、次のタスクを実行できます。

  1. 新規環境の作成
  2. 必要なライブラリを環境にインストールする
  3. ワークスペースの既定値としてこの環境をアタッチする

ワークスペースの設定にアタッチされたノートブックと Spark ジョブ定義は、ワークスペースの既定の環境にインストールされたライブラリを使ってセッションを開始します。

シナリオ 2: 1 つまたは複数のコード項目のライブラリ仕様を保持する

コード項目ごとに共通のライブラリがあり、頻繁に更新する必要がない場合は、 環境にライブラリをインストール して コード項目にアタッチします

ライブラリの複雑さに応じて、発行には 5 分から 15 分かかります。 このプロセス中に、システムは潜在的な競合を解決し、必要な依存関係をダウンロードします。

この方法の利点は、正常にインストールされたライブラリは、接続された環境で Spark セッションが開始されたときに使用可能であることが保証されることです。 プロジェクトの共通ライブラリを維持する手間を省き、安定性のためにパイプライン シナリオに推奨されます。

シナリオ 3: 対話型実行でのインライン インストール

ノートブックで対話形式でコードを記述する場合は、 PyPI または conda ライブラリを追加したり、1 回限りの使用のためにカスタム ライブラリを検証したりするには、インライン インストールが最適な方法です。 インライン コマンドを使用すると、現在のノートブック Spark セッションでのみライブラリを使用できるようになります。これにより、迅速なインストールが可能になりますが、インストールされているライブラリはセッション間で保持されません。

%pip installは実行から実行まで異なる依存関係ツリーを生成できるため、ライブラリの競合につながる可能性があるため、パイプラインの実行ではインライン コマンドが既定でオフになり、パイプラインには推奨されません。

サポートされるライブラリの種類の概要

ライブラリの種類 環境ライブラリ管理 インライン インストール
Python パブリック (PyPI および Conda) サポートされています サポートされています
Python カスタム (.whl) サポートされています サポートされています
R パブリック (CRAN) サポートされていません サポートされています
R カスタム版 (.tar.gz) カスタム ライブラリとしてサポート サポートされています
JARファイル カスタム ライブラリとしてサポート サポートされています

インライン インストール

インライン コマンドを使用すると、個々のノートブック セッション内のライブラリを管理できます。

Python のインライン インストール

システムは Python インタープリターを再起動してライブラリの変更を適用します。 コマンド セルを実行する前に定義された変数は失われます。 Python パッケージを追加、削除、または更新するためのすべてのコマンドを ノートブックの先頭に配置します

Python ライブラリを管理するためのインライン コマンドは、既定でノートブック パイプラインの実行で無効になっています。 パイプラインの%pip installを有効にするには、ノートブックアクティビティのパラメーターに_inlineInstallationEnabledするように設定されたブール型パラメーターとしてTrueを追加します。

ノートブック パイプラインの実行に対して pip インストールを有効にするための構成を示すスクリーンショット。

%pip install コマンドを実行すると、実行から実行までの一貫性のない結果が生成される可能性があります。 環境にライブラリをインストールし、代わりにパイプラインで環境を使用します。 %pip install コマンドは、高コンカレンシー モードではサポートされていません。 ノートブック参照の実行では、Python ライブラリを管理するためのインライン コマンドはサポートされていません。 正しく実行されるように、参照先のノートブックからこれらのインライン コマンドを削除します。

%pipの代わりに !pip を使用します。 !pip コマンドは IPython 組み込みシェル コマンドであり、次の制限があります。

  • !pip は、Executor ノードではなく、ドライバー ノードにのみパッケージをインストールします。
  • !pipによってインストールされたパッケージは、ノートブックに既にインポートされている組み込みパッケージまたはパッケージとの競合を考慮しません。

%pip は、これらのシナリオを処理します。 %pipによってインストールされたライブラリは、ドライバー ノードと Executor ノードの両方で使用でき、ライブラリが既にインポートされている場合でも有効になります。

ヒント

通常、%conda install コマンドは 、新しい Python ライブラリをインストールする %pip install コマンドよりも時間がかかります。 完全な依存関係をチェックし、競合を解決します。

%conda installを使用して、信頼性と安定性を高めます。 インストールするライブラリがランタイム環境にプレインストールされているライブラリと競合しないことを確認する場合は、 %pip install を使用します。

使用可能なすべての Python インライン コマンドとその説明については、「%pip コマンド」と「%conda コマンド」を参照してください。

インライン インストールを使用して Python パブリック ライブラリを管理する

この例では、インライン コマンドを使用してライブラリを管理する方法を示します。 Python 用の強力な視覚化ライブラリである altair を 1 回限りのデータ探索に使用し、ライブラリがワークスペースにインストールされていないとします。 次の例では、conda コマンドを使用して手順を説明します。

インライン コマンドを使用すると、ノートブックの他のセッションや他のアイテムに影響を与えることなく、ノートブック セッションで altair を有効にすることができます。

  1. ノートブック コード セルで次のコマンドを実行します。 最初のコマンドでは、altair ライブラリをインストールします。 また、視覚化に使用できるセマンティック モデルを含む vega_datasets をインストールします。

    %conda install altair          # install latest version through conda command
    %conda install vega_datasets   # install latest version through conda command
    

    セルの出力は、インストールの結果を示します。

  2. 別のノートブック セルで次のコードを実行することで、パッケージとセマンティック モデルをインポートします。

    import altair as alt
    from vega_datasets import data
    
  3. これで、セッション スコープの altair ライブラリを試すことができます。

    # load a simple dataset as a pandas DataFrame
    cars = data.cars()
    alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
    ).interactive()
    

インライン インストールを使用して Python カスタム ライブラリを管理する

Python カスタム ライブラリは、ノートブックのリソース フォルダーまたはアタッチされた環境にアップロードできます。 resources フォルダーは、各ノートブックと環境によって提供される組み込みのファイル システムです。 詳しくは、「Notebook のリソース」をご覧ください。 ライブラリをアップロードしたら、ライブラリをコード セルにドラッグ アンド ドロップして、インストール コマンドを自動的に生成できます。 または、次のコマンドを実行できます。

# install the .whl through pip command from the notebook built-in folder
%pip install "builtin/wheel_file_name.whl"             

R のインライン インストール

R ライブラリを管理するために、Fabric では install.packages()remove.packages()、および devtools:: コマンドがサポートされています。 使用可能なすべての R インライン コマンドと説明については、「install.packages コマンド」と「remove.package コマンド」を参照してください。

インライン インストールを使用して R パブリック ライブラリを管理する

次の例を使用して、R パブリック ライブラリをインストールする手順について説明します。

R フィード ライブラリをインストールするには:

  1. ノートブック リボンで作業言語を SparkR(R) に切り替えます。

  2. ノートブック セルで次のコマンドを実行して、caesar ライブラリをインストールします。

    install.packages("caesar")
    
  3. これで、Spark ジョブでセッション スコープの caesar ライブラリを試すことができます。

    library(SparkR)
    sparkR.session()
    
    hello <- function(x) {
    library(caesar)
    caesar(x)
    }
    spark.lapply(c("hello world", "good morning", "good evening"), hello)
    

インライン インストールによるJarライブラリの管理

次のコマンド 使用して、ノートブック セッションに.jar ファイルを追加できます。

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
    }
}        

上記のコード セルでは、lakehouse ストレージを例として使用しています。 ノートブック エクスプローラーでは、ファイルの完全な ABFS パスをコピーし、コード内で置き換えることができます。 ABFS パスを取得するメニュー コマンドのスクリーンショット。