SSブログ

IBM SPSS Modeler(旧 Clementine)のバッチ起動に関するよもやま [データサイエンス、統計モデル]

今日は、風邪で1日お休み。

さて、会社の同僚がIBM SPSS Modeler(旧 Clementine)のバッチ処理で質問があったので、ネタに使わせてもらおうw

「要約すると、バッチが上手く動かない。」とのことだった。
クレメンタインの問題とMS-DOSでの処理の問題が2つ混在している。

解決方法というか、チェック方法としては、3点ほど。
・絶対パスでClementineを呼び出しているか?
・Clementineをインストールしたフォルダにスペースがあるか?
・バッチ用のClembを使っているか?
だ。

【その1】
まず、バッチは、clembを使うという前提で。

相対パスは、あまり使わない方が良い。
というのは、
「MS-DOSでCDをしたとしても、想定したディレクトリに移動していない場合がある。」
からだ。

ここでエラーで動かないと良いのだが、Windowsのpathが通っている場合、
clembを呼び出した場合、動いてしまう可能性がある。
勝手に動いてくれると良いじゃないか?と思うかもしれないが、
Clementineの場合、複数のバージョンをインストールできるので、
どのバージョンを呼び出しているのかがあやふやになる。

普通、バージョンが上がると、過去のバグはなくなり、上位のバージョンの方が良い!のだが、Clementineの場合は、バージョンが上がったら、急にバグが出てくるとかってことが多い。
だから、このストリームは、どのバージョンで動かしているのかってことを常に意識しておく必要がある。

そのためにも、相対パスではなく、絶対パスを指定して動かした方が良いだろう。

【その2】
絶対パスで呼び出す場合、インストールした先にスペースを含む場合、注意が必要。
インストール先が C:\Program Files\SPSSInc\ などの場合、スペースを上手く認識しない場合がある。
一番良いのは、インストールする先をC:\SPSSInc\というようにスペースを含まないフォルダにインストールしておくのが良い。
とはいえ、もうインストールしてしまったYO!って場合は、
"C:\Program Files\SPSSInc\"
ダブルクォーテーションでくくっておけば良いだろう。

【その3】
バッチ処理の場合は、Clembを使うのが良い。
GUIモードを使うと、クレメンタインが終了しないので、面倒だ。
EXIT 0を使えば、終了しそうなものだが、こちらは、あくまでもMS-DOSが終了するだけであって、一度起動したクレメンタインが終了するわけではない。

クレメンタインを終了させるためには、スクリプト(- script)を使って、
exit Clementine 0とすれば、GUIモードでも終了させることができる。

後、MS-DOSの記述は、大文字でも小文字でも同じ。
clembと書こうがCLEMBと書こうが同じになります。

過去の参考ブログ
・IBM SPSS Modeler のバッチ実行よもやま
http://skellington.blog.so-net.ne.jp/2010-02-01

・IBM SPSS Modeler(旧 Clementine)の相対パスと絶対パス その1
http://skellington.blog.so-net.ne.jp/2010-10-28

・IBM SPSS Modeler(旧 Clementine)の相対パスと絶対パス その2
http://skellington.blog.so-net.ne.jp/2010-10-29

nice!(25)  コメント(2)  トラックバック(0) 
共通テーマ:学問