aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShivaram Venkataraman <shivaram@cs.berkeley.edu>2015-08-26 22:27:31 -0700
committerShivaram Venkataraman <shivaram@cs.berkeley.edu>2015-08-26 22:27:42 -0700
commit165be9ad176dcd1c431a6338ff86b339d23b6d0e (patch)
tree24eaaa86ed23ff6cb0e5b976b574161f2ddd1bf7
parent04c85a8ecbb8a27628a7d1260c19531d56d764d3 (diff)
downloadspark-165be9ad176dcd1c431a6338ff86b339d23b6d0e.tar.gz
spark-165be9ad176dcd1c431a6338ff86b339d23b6d0e.tar.bz2
spark-165be9ad176dcd1c431a6338ff86b339d23b6d0e.zip
[SPARK-10219] [SPARKR] Fix varargsToEnv and add test case
cc sun-rui davies Author: Shivaram Venkataraman <shivaram@cs.berkeley.edu> Closes #8475 from shivaram/varargs-fix. (cherry picked from commit e936cf8088a06d6aefce44305f3904bbeb17b432) Signed-off-by: Shivaram Venkataraman <shivaram@cs.berkeley.edu>
-rw-r--r--R/pkg/R/utils.R3
-rw-r--r--R/pkg/inst/tests/test_sparkSQL.R6
2 files changed, 8 insertions, 1 deletions
diff --git a/R/pkg/R/utils.R b/R/pkg/R/utils.R
index 4f9f4d9cad..3babcb5193 100644
--- a/R/pkg/R/utils.R
+++ b/R/pkg/R/utils.R
@@ -314,7 +314,8 @@ convertEnvsToList <- function(keys, vals) {
# Utility function to capture the varargs into environment object
varargsToEnv <- function(...) {
- pairs <- as.list(substitute(list(...)))[-1L]
+ # Based on http://stackoverflow.com/a/3057419/4577954
+ pairs <- list(...)
env <- new.env()
for (name in names(pairs)) {
env[[name]] <- pairs[[name]]
diff --git a/R/pkg/inst/tests/test_sparkSQL.R b/R/pkg/inst/tests/test_sparkSQL.R
index ee48a3dc0c..6bac1c08f5 100644
--- a/R/pkg/inst/tests/test_sparkSQL.R
+++ b/R/pkg/inst/tests/test_sparkSQL.R
@@ -1060,6 +1060,12 @@ test_that("parquetFile works with multiple input paths", {
parquetDF <- parquetFile(sqlContext, parquetPath, parquetPath2)
expect_is(parquetDF, "DataFrame")
expect_equal(count(parquetDF), count(df) * 2)
+
+ # Test if varargs works with variables
+ saveMode <- "overwrite"
+ mergeSchema <- "true"
+ parquetPath3 <- tempfile(pattern = "parquetPath3", fileext = ".parquet")
+ write.df(df, parquetPath2, "parquet", mode = saveMode, mergeSchema = mergeSchema)
})
test_that("describe() and summarize() on a DataFrame", {