Pythonコードの実行
ここでは、エクステンションの基本的な機能をご紹介します。また、Execute Pythonオペレータで提供されるチュートリアルプロセスもご参考ください。その他のオペレータ(Python LearnerとPython Transformer)は、カスタムオペレータ のページで紹介しています。
仕組み
RapidMinerのオペレータとPython Scriptingエクステンションのオペレータ間で、どのようにデータが転送されるかを理解することが重要です。つまり、任意のRapidMinerオペレータのポートを、任意のPythonオペレータ(Execute Python、Python Learner、Python Transformer)に接続するとどうなるかということです。
Pythonオペレータにデータを渡すと、RapidMinerのExampleSetsは自動的にPandasのDataFramesに変換されます。rm_main関数(コードの構成については次の章を参照してください)から返されたPandas DataFramesは、Python ScriptingエクステンションによってRapidMiner ExampleSetsに自動的に変換されます。メタデータやデータ型の自動変換も双方向で行われます。
コードの構成
RapidMiner内でPythonコードを正常に実行するには、メインエントリーポイントとしてrm_main関数を宣言するようにコードを構成する必要があります。rm_main関数の入力と戻り値の数と順番は、Execute Pythonオペレータの入力ポートと出力ポートと対応しています。
インラインエディタを使用する場合でも、Pythonスクリプトやnotebookファイルを埋め込む場合でも、このルールに従わなければなりません。
スクリプトの実行
Pythonコードを実行するには、基本的なスクリプトエディタでインライン編集するか(基本的な構文のハイライト機能はありますが、Python IDEのような強力な機能はありません)、Execute Pythonオペレータのscript fileパラメータでスクリプトファイルを指定します。スクリプトがインターネットでアクセスできる場所(GitHubなど)に保存されている場合、Open Fileオペレータを使って、そこからスクリプトファイルを直接読むこともできます。
また、スクリプトファイルをRapidMinerプロジェクトやリポジトリに保存することもできます。
便利な機能として、プロジェクトやリポジトリから.pyや.ipynbのファイルをキャンバスにドラッグ&ドロップすると、適切なオペレータが自動的に作成されます。
notebooksの実行
また、Execute Pythonの実行機能を使って、ipynbノートブックを実行することもできます。この場合、オペレータのscript fileパラメータを使用して、ノートブックを指定します。コードの構成に関するルールについては、Pythonスクリプトの場合と同様に、ノートブックにも適用されます。
ノートブックのセルにタグを付けた場合は、タグで選択した部分を実行できます。これを行う一つの方法に、(ノートブックをscript fileパラメータに追加した後)、Execute PythonオペレータのShow Preview…ボタンをクリックして、実行から除外するセルを選ぶ方法があります。また、notebook cell tag filterパラメータに正規表現を指定して、実行するセルを指定することもできます。
RapidMinerのマクロの使用
%{myMacro}構文でPythonコードのインラインに追加されたマクロは、インラインスクリプトの場合も、スクリプトファイルで提供された場合も、スクリプトの実行前にパースされます。もちろん、このコードはRapidMinerの中でしか実行されず、RapidMner外ではシンタックスエラーが発生します。
よりPython的な方法として、Execute Pythonオペレータのenable macrosパラメータをチェックする方法があります。そして、rm_main関数にパラメータを追加して、実行中にマクロにアクセスできるようにする必要があります。これにより、マクロの値を読み取るだけでなく、新しいマクロを定義したり、既存のマクロの値を上書することができるようになります。