Warning

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

はじめに

このページでは、Palantir R SDK を使用して Foundry でデータ変換を記述する際に利用可能な構造と設定オプションについて説明します。

リポジトリの構造

各 R 変換は、変換スペックによって定義され、設定され、その定義は YAML 形式で記述され、.transforms フォルダーに保存されます。リポジトリプロジェクトの全内容は実行時に利用可能で、変換に使用できます。

.
├── .transforms  # .transformsディレクトリ
|    └── happiness_ranking.yml  # happiness_ranking.ymlという名前のYAMLファイル
|
├── project  # projectディレクトリ
|    └── src  # srcディレクトリ
|        └── top_10.R  # top_10.Rという名前のR言語のスクリプト
└── .Rprofile  # .Rprofileという名前のR言語の設定ファイル

R トランスフォームは、Code Workspaces から公開され、UI を介して変換仕様ファイルがレンダリングされ設定可能です。

シンプルな R トランスフォームの作成と設定

以下の例では、タブラー型のデータセットを読み込み、R パッケージ dplyr を使用してフィルター処理し、フィルター処理された結果を含む出力データセットを生成する簡単なデータ変換を作成します。

Copied!
1 2 3 4 5 6 7 8 9 10 # 必要なライブラリを読み込む library(foundry) # foundryライブラリ library(dplyr) # dplyrライブラリ # "happiness_2019"という名前のデータセットを読み込む happiness_2019 <- datasets.read_table("happiness_2019") # 全体ランキングが10位以内の国をフィルタリングして、新たなデータフレームに保存 top_10 <- happiness_2019 %>% filter(Overall_rank <= 10) # フィルタリングしたデータフレームを"top_10_happiest_countries"という名前で保存 datasets.write_table(top_10, "top_10_happiest_countries")

ここでは、変換の定義が含まれる対応する変換仕様ファイルがあります。

dataset.rid フィールドを入力データセットと出力データセットのデータセット RID に置き換えてください。出力データセットは、現在チェック時に新しい出力データセットを作成することはサポートされていないため、最初に手動で作成する必要があります。

inputs または outputs リストに新しい項目を追加することで、追加の入力と出力を追加できます。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 inputs: - alias: "happiness_2019" # 入力エイリアス、ここでは "happiness_2019" を示します properties: type: "dataset" # プロパティのタイプを指定します。ここでは "dataset" です dataset: rid: "<input dataset rid here>" # 入力データセットのリソースIDを指定します outputs: - alias: "top_10_happiest_countries" # 出力エイリアス、ここでは "top_10_happiest_countries" を示します properties: type: "dataset" # プロパティのタイプを指定します。ここでは "dataset" です dataset: rid: "<output dataset rid here>" # 出力データセットのリソースIDを指定します - alias: "second-output" # 2つ目の出力エイリアス、ここでは "second-output" を示します properties: type: "dataset" # プロパティのタイプを指定します。ここでは "dataset" です dataset: rid: "<second output dataset rid here>" # 2つ目の出力データセットのリソースIDを指定します runtime: type: "rscript" # ランタイムのタイプを指定します。ここでは "rscript" です rscript: identifier: "R.4.1.x" # Rスクリプトのバージョンを指定します。ここでは "R.4.1.x" です filePath: "project/src/top_10.R" # Rスクリプトのファイルパスを指定します

ランタイム設定:

  • identifier:変換のためのランタイムを識別します。例えば、R.4.1.x は R のマイナーバージョンリリース 4.1 を指します。
  • filePath:実行される R スクリプトファイルまでのプロジェクトのルートからの相対ファイルパスです。

非構造化データの書き込み

この例では、ggplot2を使用してプロットと線形回帰ラインを生成し、そのプロットを PNG として出力データセットに保存します。

Copied!
1 2 3 4 5 6 7 8 9 10 11 library(foundry) # foundry ライブラリを読み込む library(ggplot2) # ggplot2 ライブラリを読み込む happiness_2019 <- datasets.read_table("happiness_2019") # happiness_2019 データセットを読み込む png("/tmp/model_plot.png") # プロット画像を保存するファイルを設定 plot <- ggplot(happiness_2019, aes(GDP_per_capita, Overall_rank)) + geom_point() # GDP_per_capita と Overall_rank を使ってプロットを作成 plot + stat_smooth(method = "lm", formula = y ~ x, geom = "smooth") # 線形回帰を追加してスムーズなプロットを作成 dev.off() # プロット画像を保存し、デバイスを閉じる datasets.upload_files("/tmp/model_plot.png", "happinessGDP_plot") # 作成したプロット画像をアップロードする
Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 inputs: - alias: "happiness_2019" # 幸福度2019データセット properties: type: "dataset" dataset: rid: "<input dataset rid here>" outputs: - alias: "happinessGDP_plot" # 幸福度とGDPのプロットデータセット properties: type: "dataset" dataset: rid: "<output dataset rid here>" runtime: type: "rscript" # Rスクリプトの実行 rscript: identifier: "R.4.1.x" # Rのバージョン filePath: "project/src/gdp_plot.R" # スクリプトのファイルパス

R パッケージと環境の管理

デフォルトでは、R 変換リポジトリは Posit™パッケージマネージャおよび Bioconductor をミラーリングする 作成物リポジトリ で構成されています。ユーザーは renv を使用して R パッケージをインストールし、変換用の R 環境を管理することをお勧めします。

Code Workspace RStudio® Workbench では、renv がデフォルトでインストールされており、利用可能です。ユーザーは パッケージ パネルで利用可能なパッケージを検索し、それらをインストールするための対応する R コードを生成できます。

また、R 変換は renv.lock からの復元もサポートしています。リポジトリに renv.lock ファイルが存在する場合、変換の最初に renv.restore() を実行するか、.Rprofile で R 環境を復元できます。

以下の例は、R 変換に必要なパッケージをインストールし、プロジェクトライブラリの状態を保存するための renv.lock ファイルを生成するために実行できる R コマンドを示しています。生成されたロックファイルはコミットされ、後でプロジェクトを復元するために使用できます。

Copied!
1 2 3 4 5 6 # "dplyr"というパッケージをインストールします。 renv::install("dplyr") # "arrow"というパッケージをインストールします。 renv::install("arrow") # 現在のプロジェクトの状態をスナップショットとして保存します。 renv::snapshot()

RStudio® は Posit™ の商標です。

すべての第三者の商標(ロゴやアイコンを含む)は、それぞれの所有者の財産となります。所属や推奨を示すものではありません。