在控制台上停止RServe打印json

时间:2016-07-12 08:13:44

标签: java json r rserve

我遇到了一个非常奇怪的问题。我有一个不包含任何print语句的R代码(除了我记录所用时间的显式调用之外),然后整个json被转储到" R控制台"。这导致我们的模块出现严重的性能问题,我需要您的帮助来追踪问题。

这里只是R文件的一部分(由于公司政策,我无法发布完整的源代码,我为没有提供太多信息道歉)

#run time/online time series models
LAST_TIME_ID <- DATA[nrow(DATA),id];
LAST_TIME_ID <- strptime(LAST_TIME_ID,format="%d-%m-%Y %H:%M");

#timestamp tag computation using frequency 
FREQUENCY_VEC <- rep(TIMESTAMP_FREQUENCY*60,PREDICTION_NUMBER);
FREQUENCY_VEC <- cumsum(FREQUENCY_VEC);
TIMESTAMP_TAGS <- LAST_TIME_ID + FREQUENCY_VEC;
TIMESTAMP_TAGS <- format(strptime(TIMESTAMP_TAGS,format="%Y-%m-%d %H:%M"),format="%d-%m-%Y %H:%M");

#prepare the prediction points data per tag into table format
PREDICTION_DATA <- NULL;
startTime <- Sys.time();
for (tag_index in 1:length(MODEL[,tag_id])) {
    TEMP <- data.table(id=as.character(TIMESTAMP_TAGS),tag_id = MODEL[tag_index,tag_id], prediction = as.vector(MODEL[,Forecast][[tag_index]]));
    PREDICTION_DATA <- data.table(rbind(PREDICTION_DATA,TEMP));
    rm(TEMP);
};
endTime <- Sys.time();
print(paste("seconds consumed (prediction points data per tag into TEMP): ",(endTime-startTime)/1000));


#OUTPUT <- dcast(PREDICTION_DATA,id~tag_id); #into output
OUTPUT <- PREDICTION_DATA;

#compute final output in json format
js_object <- toJSON(OUTPUT,asIs = TRUE);    
js_object;

我可以向你保证其余的代码看起来都一样(即没有打印)。我在Windows 8上使用RServe(REngine.jar)通过Java(1.8)运行我的R代码。

非常感谢任何想法/线索。

2 个答案:

答案 0 :(得分:0)

当您在末尾键入js_object文件名时,您正在调用该对象,R正在将内容打印到控制台。您需要做的就是删除它应该停止打印出来。

答案 1 :(得分:0)

您刚刚执行的选择代码段的最后一行:  js_object;

将变量打印到控制台。

删除没有赋值给变量的类型的语句。