Я изучаю Java Application Апи в IBM Streams, поэтому для него выглядит многообещающим. Я могу создавать топологии и запускать их в автономном режиме в распределенном режиме.Как использовать RScript-оператор с IBM Streams Java Application Api?
Теперь я пытаюсь понять, как вызвать R скрипт из Java топологии. Один из способов, я думаю, - использовать com.ibm.streams.rproject :: RScript оператор в моей топологии Java.
Вот мой полный код:
SPLStream tuples = testTupleStream(topology);
//tuples.print();
topology.createSubmissionParameter("rCommand", "/usr/local/bin/R --vanilla");
// Filter on the vi attribute, passing the value 321.
Map<String,Object> params = new HashMap<>();
params.put("rObjects", "first, second");
params.put("rScriptFileName", "./etc/print.r");
params.put("streamAttributes", "number1, number2");
//params.put("filter", SPL.createValue(" vi == 321 ", MetaType.BOOLEAN));
SPL.createSubmissionParameter(topology, "rsample", SPL.createValue(true, MetaType.BOOLEAN), true);
//String toolkitRoot = "/opt/ibm/InfoSphere_Streams/4.0.1.0/toolkits";
//SPL.addToolkit(tuples, new File(toolkitRoot));
SPLStream int32Filtered = SPL.invokeOperator("rsampleoperator","com.ibm.streams.rproject::RScript", tuples, tuples.getSchema(), params);
int32Filtered.print();
Но когда я запускаю выше топологии, я получаю следующее сообщение об ошибке:
09 Nov 2015 04:09:53.234 [5407] ERROR #splapptrc,J[5],P[5],rsampleoperator,spl_pe M[PEImpl.cpp:process:841] - CDISR5079E: An exception occurred during the processing of the processing element. The error is: An operator was attempting to access the data directory and no data directory has been specified..
09 Nov 2015 04:09:53.241 [5407] ERROR #splapptrc,J[5],P[5],rsampleoperator,spl_operator M[PEImpl.cpp:process:872] - CDISR5053E: Runtime failures occurred in the following operators: rsampleoperator.
Можете ли вы предложить мне то, что я делаю неправильно ? Любое понимание с помощью SPL операторов в Java API поможет?
Благодаря Sudheer