Anchor | ||||
---|---|---|---|---|
|
Table of Contents | ||
---|---|---|
|
概要
...
Rは、統計的計算のための強力なプログラミング言語、およびソフトウェア環境です。Rで作成されたスクリプトをYellowfinと組み合わせることで、データの高度な統計分析を行うことができます。
Rモデル予測ステップを使用することで、Rを使用して作成された分析モデルやアプリケーションをYellowfinで使用することができます。このStep(ステップ)を通してRスクリプトを使用することで、Yellowfinのデータ上で生成するようにデザインされた結果を得ることができます。
前提条件
こちらのStep(ステップ)を使用するためには、以下の設定が必要です。
- Rserveパッケージが実行されているRインスタンスへのアクセス
- 少なくともひとつの有効なRスクリプト
- YellowfinインスタンスへRのプラグインのインストール。Rのプラグインは、マーケットプレイスからダウンロードすることができます。
Rスクリプトを使用するためにデータ変換モジュールを使用するユーザーは、スクリプトを熟知し、入力や出力要件を把握していなくてはいけません。
Rserveについて詳細な資料は、こちらを参照してください。:https://cran.r-project.org/web/packages/Rserve/Rserve.pdf
一般的なワークフロー
こちらがプロセスの簡単な概要です。こちらの項目では、これらのStep(ステップ)の大部分について、詳細に説明します。
- Rのインスタンスへのアクセスを確立するか、自身でセットアップをします。Rスクリプトを記述し、それが有効であることを確認します。このインスタンスは、スクリプトを実行するために使用されます。
- YellowfinインスタンスへRのプラグインをインストールします。(プラグインは、マーケットプレイスからダウンロードできます。)プラグインのインストール方法は、こちらを参照してください。
- Yellowfinのデータ変換モジュールを使用して、Transformation Flow(データ変換フロー)を作成します。これには、モジュールへのデータのインポート、そして必要に応じたその他変換の適用が必要です。
- フローにR Tranformation Step(変換ステップ)を使用し、これを設定します。(ステップの設定方法は、以下の情報を参照してください。)
- Step(ステップ)を実行し、スクリプトがデータを使用して生成する出力を確認します。
データ包括モードのタイプ
Rモデル予測ステップにより生成される結果は、以下のオプションに応じます。
- 追加:追加は、既存のデータにカラム(列)が追加された場合に使用されます。このオプションは、Rスクリプトが追加されたカラム(列)とともに、元のデータを返すようにデザインされている場合に使用されます。
- 置き換え:スクリプトが特定のカラム(列)を出力し、元のデータを返す必要のない場合にこちらのオプションを使用します。
Rスクリプトの基準
Rスクリプトを記述する際には、それがYellowfinで機能することを確認しなくてはいけません。以下のガイドラインを使用して、確認をすることができます。
例1:追加
こちらは、入力データにカラム(列)を2つ追加することで出力を返す基礎的なスクリプトの例です。これは、追加オプションがどのように利用できるのかを示しています。
Code Block |
---|
outData<-data.frame(c(yfData), yfData[1], yfData[3]) |
こちらはスクリプトの内訳と、それをYellowfin内でどのように設定するのかを示しています。
- yfData:yfDataは入力データを含むデータフレーム、またはスクリプトの前のステップから渡されるデータです。これは、Step(ステップ)の設定時に、入力変数として提供する名前です。
- yfData[1]/yfData[3]:スクリプトはデータフレーム全体を入力し、カラム(列)1とカラム(列)3を追加します。こちらの例は、特定のデータカラム(列)を指定する場合のインデックスの使用方法を示しています。
- outData:出力変数の名前です。組み合わせられた結果は、こちらの変数へ保存されます。
これらの変数名は、R Step(ステップ)内でスクリプトを設定する際に使用します。(例を以下に示します)
例2:置き換え
このスクリプトは、入力されるデータからひとつの数値カラム(列)のみを取得し、そのカラム(列)上で計算を実行するように記述されています。置き換えオプションは、このスクリプトを設定する際に使用します。
Code Block |
---|
outData<-data.frame(yfData$Income*2.5) |
以下は、このスクリプトの説明です。
- yfData:入力変数であるyfDataデータフレームから取得される入力されるデータです。
- Income:入力データから取得されるカラム(列)フィールドの名前です。(こちらでは、インデックス番号を使用せずに、$シンボルを使用することで、直接カラム(列)名を参照しています。)このフィールドのすべてのロウ(行)は、2.5倍されます。
- outData:計算の結果が保存される出力変数です。
このスクリプトを設定する際には、R Step(ステップ)設定パネルで、yfDataは入力変数、outDataは出力変数として提供されます。返されるフィールドの合計数として1を入力します。
ガイドライン:YellowfinでのRスクリプトの使用
パート1:Rのセットアップ
Rserveが実行されている最新バージョンのR(少なくともv3.4.0以降)を準備することを推奨します。最新バージョンは、こちらからダウンロードすることができます:https://cran.r-project.org/mirrors.html Rserveを実行するR環境にはRStudioの使用を推奨します。
以下のコマンドを参照して、Rインスタンスをセットアップしてください。
Windows端末上でのRの実行
...
Code Block |
---|
install.packages("Rserve") #This installs Rserve package
library(Rserve) #This loads Rserve package
Rserve() #This starts Rserve |
...
Code Block |
---|
run.Rserve(args=" --RS-enable-remote") |
Linux CentOSへのRとRserveのインストール
...
Code Block |
---|
yum install epel-release -y #Required to install R
yum install R -y #Installs R
wget https://download2.rstudio.org/rstudio-server-rhel-1.0.44-x86_64.rpm #Installs RStudio. (You might want to install a different version though.) |
...
コマンドの実行に成功すると、Rサービスが自動的に実行されます。
...
Code Block |
---|
systemctl status rstudio-server.service |
...
Code Block |
---|
sudo -i R |
...
Code Block |
---|
install.packages("Rserve") #This installs Rserve package
library(Rserve) #This loads Rserve package |
...
Code Block |
---|
R CMD Rserve --RS-enable-remote --RS-port port |
ここでポートは、Rを起動するポート番号を示します。
...
Linux UbuntuへのRとRserveのインストール
...
Code Block |
---|
sudo apt-get update
sudo apt-get install r-base r-base-dev
sudo apt-get install gdebi-core
wget https://download1.rstudio.org/rstudio-0.99.896-amd64.deb
sudo gdebi -n rstudio-0.99.896-amd64.deb |
...
Code Block |
---|
sudo -i R |
...
Code Block |
---|
install.packages("Rserve") #This installs Rserve package
library(Rserve) #This loads Rserve package |
...
Code Block |
---|
R CMD Rserve --RS-enable-remote --RS-port port |
ここでポートは、Rを起動するポート番号を示します。
...
Note |
---|
このTransformation Step(変換ステップ)を適切に機能させるためには、RインスタンスとRserveの適切なセットアップと実行が必要です。 |
パート2:Transformation Flow(データ変換フロー)内でのRスクリプトの使用
R スクリプトを使用して、データへ適用するためには、以下の手順に従います。
...
...
Note |
---|
YellowfinはRserveパッケージを利用します。接続を試行する前に、Rserveをインストールし、実行しなくてはいけません。 |
...
Note |
---|
ファイル形式が適切であることを確認してください。例:「.r」拡張子が必要です。 |
...
- 追加:スクリプトが、入力データとともに新規フィールドの生成を返す場合は、こちらの方法を選択します。データに追加される新規フィールド数を指定します。
- 置き換え:スクリプトが、デザインされた結果を返す場合は、こちらの方法を選択します(これは新規フィールドのみの場合もあれば、新規フィールドと入力フィールドの組み合わせの場合もあり、スクリプト作成者が、スクリプトがどのような結果を生成するようにデザインをしているかに応じて異なります)。Rスクリプトが生成するフィールドの合計数を入力します。
...
Step(ステップ)実行時の問題
こちらの項目では、Step(ステップ)の実行が失敗するいくつかの例を紹介します。
- スクリプトへのファイルパスが不正確
- スクリプトから返されたフィールド数が、入力時に指定したフィールド数と不一致
- Rserveへの接続の断絶(この場合、空のテーブルが表示されることが多いです)
- アップロードしたスクリプトが有効なRスクリプトではない
Rserveへの接続の断絶
Step(ステップ)の設定後に、Rserveへの接続が断絶する場合があります。その場合は、以下のエラーメッセージが表示されます。
これ自体は大きな問題ではありません。Rserveへの接続を再起動し、「Apply(適用)」ボタンをクリックして、再度Step(ステップ)を実行します。接続が適切に確立されると、Step(ステップ)は適切に実行されます。
不正確なフィールド値
追加される/返される合計フィールド数が不正確な場合は、ステップの実行時に以下のエラーが表示されます。
...