これを行う方法?
そのため、このためにgithubで次のオープンソースツールを使用します。 まず、SASJavaExec.javaファイルを自分自身にコピーし、jarファイルにコンパイルします。 重要なポイント:JDK 1.7_025を使用してコンパイルする必要があります。 JDK 1.8を使用すると、SASコードでエラーが発生します。
1.クラスを作成します:java -jar SASJavaExec.jar
2. jarファイルにコンパイルします。jar cfm SASJavaExec.jar manifest.txt SASJavaExec $ 1.class SASJavaExec.class
manifest.txtは1行のファイルです:Main-Class:SASJavaExec。 これでSASJavaExec.jarファイルができました。
次に、システム設定で登録する必要があります。 Windowsでプログラムを実行したため、環境設定でCLASSPATH変数を設定する必要があります。
私の場合、次のようになりました。
これを行う方法の詳細については、こちらを参照してください 。
上記の手順をすべて完了したら、SASを実行します。
次のパスを指定する必要があります。
Pythonファイルパス:%let PYTHON_EXEC_COMMAND = C:\ Python27 \ python.exe;
Pythonプログラムへのパス:
%let WORK_DIR = C:\SAS\T_Java\Example; python_pgm = "&WORK_DIR.\digitsdata_svm.py";
その後、実行可能コード-データセットを記述します。
/*** Part I: Python ***/ data _null_; length rtn_val 8; *** Python program takes working directory as first argument; python_pgm = "&WORK_DIR.\digitsdata_svm.py"; python_arg1 = "&WORK_DIR"; python_call = cat('"', trim(python_pgm), '" "', trim(python_arg1), '"'); put python_pgm = ; put python_arg1 =; put python_call=; declare javaobj j("SASJavaExec", "&PYTHON_EXEC_COMMAND", python_call); j.callIntMethod("executeProcess", rtn_val); run;
次に、プログラムを実行し、実行ログを確認します。
python_pgm=C:\SAS\T_Java\Example\digitsdata_svm.py python_arg1=C:\SAS\T_Java\Example python_call="C:\SAS\T_Java\Example\digitsdata_svm.py" "C:\SAS\T_Java\Example" 27, 2016 6:36:39 AM SASJavaExec executeProcess INFO: Executing [C:\Python27\python.exe, C:\SAS\T_Java\Example\digitsdata_svm.py, C:\SAS\T_Java\Example] ... 27, 2016 6:36:39 AM SASJavaExec executeProcess INFO: Starting external process ... 27, 2016 6:36:39 AM SASJavaExec executeProcess INFO: External process exit value 0.
すべてが順調で、digitsdata_svm.pyプログラムがSASから実行されました。
この記事がお役に立てば幸いです。
PS SASプログラム自体の例は、記事の冒頭で示されたgithubからも引用されています。