こんにちは、ひめのです。
弊社ではインストール版のDataikuで様々な分析、
サービス開発を行っているのですが、
ケイパビリティの確認としてDataiku様にもご協力いただきながら
クラウド版とどっちが適しているか?の検証を行っていました。
検証した内容はRのRobynパッケージを用いた分析ワークフローです。
長くなりそうなのでシリーズということにして記事を分けようと思います。
クラウド版環境:v12.4
Code envの差異
インストール版と同様にCode envをPython用とR用で作成します。
RobynはRのパッケージですが、reticulateパッケージを使用して仮想環境を構築し、
その中でPythonパッケージのNevergradなどを使用しています。
インストール版で問題なく動いていたので、同様のパッケージを追加してみます。
インストール版の環境はこんな感じです↓
これをそのままコピペ………しても動きませんでした!!
いろいろ試行錯誤してたどり着いたのが、それぞれにバージョン情報を入れる、という方法。
クラウド版の環境で上手く行った例がこちらです!↓
devtoolsは同じコードを実行していたらクラウド版でのみ足りない、と表示が出たので追記しました。
環境作成の際にエラーがたくさん出て、頑張って解読してたどり着きました…!
RとPythonの両方を使う方法が違う
インストール版ではR環境とPython環境を両方用意して、以下のコードをで
RのノートブックからPythonを呼び出します。
# Python環境を使用するための設定
use_python(‘/data/dataiku/dss_data/code-envs/python/robyn_py38/bin/python’)
クラウド版はコンテナ処理をしているそうで、RのノートブックからPythonパッケージを
呼び出すには以下のコードが必要です。
Dataikuのサポートの方にご協力いただきました。
# Load the devtools package
library(devtools)
# Load reticulate library
library(reticulate)
# 2. Create virtual environment using /usr/bin/python3.6
virtualenv_create(“r-reticulate”, python = “/usr/bin/python3.6”)
# 3. Use the environment created
use_virtualenv(“r-reticulate”, required = TRUE)
# 4. Point Python path to the python file in the virtual environment
Sys.setenv(RETICULATE_PYTHON = “~/.virtualenvs/r-reticulate/bin/python”)
クラウド版のコードはローカルでRスタジオに記載していたコードとほぼ同じになりました。
Rのノートブックで仮想環境を作成しているので、PythonのCode envを別途作成する必要はありません。
仮想環境の作成に関して、python3.6以外にも試したのですが、
私が実行した当時は3.6以外では上手く行きませんでした。
ウェアハウスのスペックにもよると思いますが、ライブラリの追加や仮想環境作成に
インストール版と比較して結構時間がかかった印象です。
次回はマネージドフォルダの差異についてご紹介したいと思います。