2016-07-12 19 views
0

Ich stoße auf ein sehr seltsames Problem. Ich habe einen R-Code, der keine print-Anweisung enthält (außer meinen expliziten Aufrufen, um die Zeit zu protokollieren) und trotzdem wird der gesamte JSON auf die "R-Konsole" übertragen. Dies verursacht ein schwerwiegendes Leistungsproblem mit unserem Modul und ich brauche Ihre Hilfe, um das Problem aufzuspüren.Stoppen von RServe Drucken von JSON auf der Konsole

Hier nur ein Teil der R-Datei ist (aufgrund der Unternehmenspolitik, kann ich nicht den gesamten Quellcode schreiben und ich entschuldige mich für nicht viele Informationen geben)

#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; 

kann ich Ihnen den Rest des Codes sicherzustellen, sieht gleich aus (dh keine Drucke). Ich verwende meinen R-Code über Java (1.8) unter Verwendung von RServe (REngine.jar) unter Windows 8.

Alle Ideen/Hinweise würden sehr geschätzt werden.

Antwort

0

Die letzte Zeile Ihres Auswahl-Snippets, in der Sie nur ausführen: js_object;

druckt die Variable auf die Konsole.

Entfernen Sie solche Anweisungen, denen keine Variablen zugewiesen sind.

0

Wenn Sie am Ende den Dateinamen js_object eingeben, rufen Sie dieses Objekt auf und R druckt den Inhalt auf die Konsole. Alles, was Sie tun müssen, ist zu entfernen, und es sollte aufhören, es auszudrucken.

+0

Bethany, Brijesh - Danke für Ihre Eingaben. Wie auch immer, ich habe versucht, die letzte Zeile zu entfernen ... und habe einfach nur an jSON geschrieben (OUTPUT, asIs = TRUE); als letzte Zeile und es druckt immer noch den JSON. Meine Entschuldigung ... Ich habe vergessen zu erwähnen, dass wir RServe_d.exe ausgeführt haben, der den Server im Debug-Modus laufen lässt. Die Ausgabe verschwindet, wenn wir RServe.exe anstelle von RServe_d.exe ausführen. Allerdings denke ich immer noch, dass das Drucken von JSON standardmäßig ein Problem ist. Fehle ich etwas? – devak23

+0

BTW ... Ich muss die JSON-Ausgabe meiner Analyse zurück an den Webservice senden ... – devak23

+0

Um Ihre Frage zu beantworten, sollte man wissen, wie Ihr Web-Service die R-Datei aufruft. Bitte laden Sie relevante Teile, wenn möglich, hoch. – brijs