From bc474f4842b53f196d4092df82ef2946f7d259af Mon Sep 17 00:00:00 2001 From: Sun Rui Date: Thu, 31 Mar 2016 23:03:27 +0800 Subject: [PATCH] [SPARK-14037][SPARKR][investigation-only] Buffer the output to evalute the performance. --- R/pkg/R/serialize.R | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/R/pkg/R/serialize.R b/R/pkg/R/serialize.R index 3bbf60d9b668c..ceddc2e831540 100644 --- a/R/pkg/R/serialize.R +++ b/R/pkg/R/serialize.R @@ -122,10 +122,14 @@ writeRawSerialize <- function(outputCon, batch) { } writeRowSerialize <- function(outputCon, rows) { - invisible(lapply(rows, function(r) { + buf <- rawConnection(raw(0), "wb") + on.exit(close(buf)) + lapply(rows, function(r) { bytes <- serializeRow(r) - writeRaw(outputCon, bytes) - })) + writeRaw(buf, bytes) + }) + bytes <- rawConnectionValue(buf) + writeBin(bytes, outputCon, endian = "big") } serializeRow <- function(row) {