12.5.1 Embedded Python ExecutionのPython APIについて
1つ以上のPythonエンジンで関数をデータ・パラレルで実行するか、タスク・パラレルで実行するかを選択できます。データ・パラレル処理では、データをパーティション化し、1つ以上のPythonエンジンを使用して各データ・サブセットの同じユーザー定義Python関数を呼び出します。タスク・パラレル処理では、引数として渡された一意の索引を使用して、1つ以上のPythonエンジンでユーザー定義関数が複数回呼び出されます。たとえば、索引を使用してランダム・シードを設定するモンテカルロ・シミュレーションにタスク・パラレル処理を使用できます。
次の表に、Embedded Python ExecutionのPython関数を示します。
関数 | 説明 |
---|---|
oml.do_eval |
データベース環境によって生成および管理されるPythonエンジンでユーザー定義Python関数を実行します。 |
oml.group_apply |
1つ以上の列の値でデータベース表をパーティション化し、指定されたユーザー定義Python関数を各パーティションで実行します。 |
oml.index_apply |
呼出しの一意の索引をユーザー定義関数に渡して、Python関数を複数回実行します。 |
oml.row_apply |
データベース表を行のセットにパーティション化し、指定されたユーザー定義Python関数を各セットのデータに対して実行します。 |
oml.table_apply |
単一のPythonエンジンで単一の |
特殊な制御引数について
特殊な制御引数は、Embedded Python Execution関数に渡す関数の実行前または実行後の動作を制御します。oml.do_eval
などの関数の**kwargs
パラメータを使用して特殊な制御引数を指定します。これらの制御引数は、その関数のfunc
引数で指定された関数には渡されません。
表12-1 特殊な制御引数
引数 | 説明 |
---|---|
oml_input_type |
入力タイプは次のとおりです。
すべての列が数値である場合、デフォルト・タイプは |
oml_na_omit |
入力データの欠損値の処理を制御します。 |
出力について
ユーザー定義Python関数をOML4Pyで実行すると、デフォルトでは、関数によって返されたPythonオブジェクトが返されます。また、OML4Pyは、ユーザー定義Python関数によって作成されたすべてのmatplotlib.figure.Figure
オブジェクトを取得し、PNG形式に変換します。
graphics = True
の場合、Embedded Python Execution関数はoml.embed.data_image._DataImage
オブジェクトを返します。oml.embed.data_image._DataImage
クラスには、PythonオブジェクトとPNGイメージが含まれています。__repr__()
メソッドをコールすると、PNGイメージが表示され、Pythonオブジェクトが出力されます。デフォルトでは、.dat
は、ユーザー定義Python関数が返したPythonオブジェクトを返します。.img
は、それぞれの図のPNGイメージ・データを含むリストを返します。
スクリプト・リポジトリについて
Embedded Python Executionには、ユーザー定義Python関数を作成してOML4Pyスクリプト・リポジトリに格納する機能、ユーザー定義Python関数への読取り権限を付与したり取り消す機能、使用可能なユーザー定義Python関数をリストする機能、ユーザー定義Python関数をPython環境にロードする機能、スクリプト・リポジトリからユーザー定義Python関数を削除する機能が用意されています。
ユーザー定義Python関数が実行する他のアクションとともに、OML4Pyデータストアに格納されているPythonオブジェクトの作成、取得および変更を行うこともできます。
Embedded Python Executionでは、ユーザー定義Python関数は、データベース環境によって生成および管理される1つ以上のPythonエンジンで実行されます。これらのエンジンは、データベースによって動的に起動および管理されます。同じユーザー定義Python関数から、構造化データおよびPNGイメージを取得できます。
ユーザー定義Python関数は、プライベートまたはグローバルのいずれかにできます。グローバル関数は、すべてのユーザーが使用できます。プライベート関数は、所有者、または関数の所有者が読取り権限を付与したユーザーのみが使用できます。