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 Custom | サポートされています | サポートされています |
前提条件
Microsoft Fabric サブスクリプションを取得します。 または、無料の Microsoft Fabric 試用版にサインアップします。
Microsoft Fabric にサインインします。
ホーム ページの左側にある環境スイッチャーを使って、Synapse Data Science 環境に切り替えます。
セッション レベルの R ライブラリ
対話型でデータ分析や機械学習を行っているときに、新しいパッケージを試したり、ワークスペースで現在使用できないパッケージが必要になったりすることがあります。 ワークスペース設定を更新する代わりに、セッション スコープのパッケージを使用してセッションの依存関係を追加、管理、更新できます。
- セッション スコープのライブラリをインストールすると、現在のノートブックだけが、指定されたライブラリにアクセスできます。
- これらのライブラリは、同じ Spark プールを使用する他のセッションまたはジョブには影響しません。
- これらのライブラリは、基本ランタイムおよびプール レベルのライブラリの上にインストールされます。
- ノートブック ライブラリの優先順位が最も高くなります。
- セッション スコープの R ライブラリは、セッション間で保持されません。 これらのライブラリは、関連するインストール コマンドが実行されると、各セッションの開始時にインストールされます。
- セッション スコープの R ライブラリは、ドライバーおよびワーカーの両方のノードに自動的にインストールされます。
Note
R ライブラリを管理するコマンドは、パイプライン ジョブの実行時に無効になります。 パイプライン内でパッケージをインストールしたい場合は、ワークスペース レベルでライブラリ管理機能を使用する必要があります。
CRAN から R パッケージをインストールする
CRAN から R ライブラリを簡単にインストールできます。
# 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 ランタイムの組み込みライブラリをアンインストールまたは削除することはできません。
Note
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 に設定されます。 これにより現在の libPaths 内のライブラリがワーカーにコピーされ、それをワーカーにインポートして使用できます。 たとえば、次を実行すると、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)
関連するコンテンツ
R 機能の詳細については、以下を参照してください。