R ライブラリの管理
ライブラリには、Microsoft Fabric Spark のプログラムまたはプロジェクトに含める再利用可能なコードが用意されています。
Microsoft Fabric では、TidyVerse を含む多くの一般的なオープンソース R パッケージがプレインストールされた R ランタイムがサポートされています。 Spark インスタンスが起動すると、これらのライブラリが自動的に含まれるので、ノートブックまたは Spark ジョブ定義ですぐに使用できます。
さまざまな理由で R ライブラリの更新が必要になる場合があります。 たとえば、コア依存関係の 1 つが新しいバージョンをリリースしたか、チームが Spark クラスターで使用できる必要があるカスタム パッケージを構築しています。
シナリオに基づいて、次の 2 種類のライブラリを含めることができます。
フィード ライブラリ、CRAN や GitHub などのパブリック ソースまたはリポジトリに存在するもの 参照します。
カスタム ライブラリ は、自分または組織によって構築されたコードです。.tar.gz は、ライブラリ管理ポータルを使用して管理できます。
Microsoft Fabric には、次の 2 つのレベルのパッケージがインストールされています。
環境: 環境 を使用してライブラリを管理し、複数のノートブックまたはジョブ間で同じライブラリ セットを再利用します。
セッション: セッション レベルのインストールでは、特定のノートブック セッションの環境が作成されます。 セッション レベルのライブラリの変更は、セッション間で保持されません。
現在使用可能な R ライブラリ管理の動作の概要:
ライブラリの種類 | 環境のインストール | セッション レベルのインストール |
---|---|---|
R フィード (CRAN) | サポートされていません | サポートされている |
R カスタム | サポート対象 | サポート対象 |
前提 条件
Microsoft Fabric サブスクリプションを取得します。 または、無料の Microsoft Fabric 試用版 にサインアップしてください。
Microsoft Fabric にサインインします。
ホーム ページの左下にあるエクスペリエンス スイッチャーを使用して、Fabric に切り替えます。
セッション レベルの R ライブラリ
対話型データ分析または機械学習を行うときは、新しいパッケージを試すか、ワークスペースで現在使用できないパッケージが必要になる場合があります。 ワークスペース設定を更新する代わりに、セッション スコープ パッケージを使用して、セッションの依存関係を追加、管理、更新できます。
- セッション スコープ ライブラリをインストールすると、現在のノートブックのみが、指定したライブラリにアクセスできます。
- これらのライブラリは、同じ Spark プールを使用する他のセッションやジョブには影響しません。
- これらのライブラリは、基本ランタイムとプール レベルのライブラリの上にインストールされます。
- ノートブック ライブラリの優先順位が最も高くなります。
- セッション スコープの R ライブラリは、セッション間で保持されません。 これらのライブラリは、関連するインストール コマンドが実行されるときに、各セッションの開始時にインストールされます。
- セッション スコープの R ライブラリは、ドライバー ノードとワーカー ノードの両方に自動的にインストールされます。
手記
R ライブラリを管理するコマンドは、パイプライン ジョブの実行時に無効になります。 パイプライン内にパッケージをインストールする場合は、ワークスペース レベルでライブラリ管理機能を使用する必要があります。
CRAN から R パッケージをインストールする
R ライブラリ は、CRANから簡単にインストールできます。
# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))
CRAN スナップショットをリポジトリとして使用して、毎回同じパッケージ バージョンを確実にダウンロードすることもできます。
# install a package from CRAN snapsho
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
devtools を使用して R パッケージをインストールする
devtools
ライブラリを使用すると、パッケージの開発が簡略化され、一般的なタスクが迅速化されます。 このライブラリは、既定の Microsoft Fabric ランタイム内にインストールされます。
devtools
を使用して、インストールするライブラリの特定のバージョンを指定できます。 これらのライブラリは、クラスター内のすべてのノードにインストールされます。
# Install a specific version.
install_version("caesar", version = "1.0.0")
同様に、GitHub から直接ライブラリをインストールできます。
# Install a GitHub library.
install_github("jtilly/matchingR")
現在、Microsoft Fabric では次の devtools
関数がサポートされています。
コマンド | 説明 |
---|---|
install_github() | GitHub から R パッケージをインストールします |
install_gitlab() | GitLab から R パッケージをインストールします |
install_bitbucket() | BitBucket から R パッケージをインストールします |
install_url() | 任意の URL から R パッケージをインストールします |
install_git() | 任意の Git リポジトリからのインストール |
install_local() | ディスク上のローカル ファイルからのインストール |
install_version() | CRAN の特定のバージョンからのインストール |
R カスタム ライブラリをインストールする
セッション レベルのカスタム ライブラリを使用するには、まず、アタッチされた Lakehouse にアップロードする必要があります。
カスタム ライブラリを使用するノートブックを開きます。
左側で [追加] を選択して、既存のレイクハウスを追加するか、レイクハウスを作成します。
右クリックするか、ファイル の横にある "..." を選択して、.tar.gz ファイルをアップロードします。
アップロードした後、ノートブックに戻ります。 次のコマンドを使用して、カスタム ライブラリをセッションにインストールします。
install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
インストールされているライブラリを表示する
library
コマンドを使用して、セッション内にインストールされているすべてのライブラリに対してクエリを実行します。
# query all the libraries installed in current session
library()
packageVersion
関数を使用して、ライブラリのバージョンを確認します。
# check the package version
packageVersion("caesar")
セッションから R パッケージを削除する
detach
関数を使用して、名前空間からライブラリを削除できます。 これらのライブラリは、再び読み込まれるまでディスク上に残ります。
# detach a library
detach("package: caesar")
セッション スコープ パッケージをノートブックから削除するには、remove.packages()
コマンドを使用します。 このライブラリの変更は、同じクラスター上の他のセッションには影響しません。 ユーザーは、既定の Microsoft Fabric ランタイムの組み込みライブラリをアンインストールまたは削除できません。
手記
SparkR、SparklyR、R などのコア パッケージを削除することはできません。
remove.packages("caesar")
セッション スコープの R ライブラリと SparkR
ノートブック スコープのライブラリは、SparkR ワーカーで利用できます。
install.packages("stringr")
library(SparkR)
str_length_function <- function(x) {
library(stringr)
str_length(x)
}
docs <- c("Wow, I really like the new light sabers!",
"That book was excellent.",
"R is a fantastic language.",
"The service in this restaurant was miserable.",
"This is neither positive or negative.")
spark.lapply(docs, str_length_function)
セッション スコープの R ライブラリと sparklyr
sparklyr の spark_apply()
では、Spark 内の任意の R パッケージを使用できます。 既定では、sparklyr::spark_apply()
では、packages 引数は FALSE に設定されます。 これにより、現在の libPath 内のライブラリがワーカーにコピーされ、ワーカーにインポートして使用できるようになります。 たとえば、次のコマンドを実行して、sparklyr::spark_apply()
でシーザーで暗号化されたメッセージを生成できます。
install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
spark_version <- sparkR.version()
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)
apply_cases <- function(x) {
library(caesar)
caesar("hello world")
}
sdf_len(sc, 5) %>%
spark_apply(apply_cases, packages=FALSE)
関連コンテンツ
- Microsoft Fabric で環境を作成、構成、および使用する
R 機能の詳細については、以下を参照してください。