aboutsummaryrefslogtreecommitdiff
path: root/R/pkg/inst
diff options
context:
space:
mode:
authoractuaryzhang <actuaryzhang10@gmail.com>2017-02-23 11:12:02 -0800
committerFelix Cheung <felixcheung@apache.org>2017-02-23 11:12:02 -0800
commit7bf09433f5c5e08154ba106be21fe24f17cd282b (patch)
tree41c31f3450f8bfc1d6808a5adc1d4f74c94e70c4 /R/pkg/inst
parent78eae7e67fd5dec0c2d5b18000053ce86cd0f1ae (diff)
downloadspark-7bf09433f5c5e08154ba106be21fe24f17cd282b.tar.gz
spark-7bf09433f5c5e08154ba106be21fe24f17cd282b.tar.bz2
spark-7bf09433f5c5e08154ba106be21fe24f17cd282b.zip
[SPARK-19682][SPARKR] Issue warning (or error) when subset method "[[" takes vector index
## What changes were proposed in this pull request? The `[[` method is supposed to take a single index and return a column. This is different from base R which takes a vector index. We should check for this and issue warning or error when vector index is supplied (which is very likely given the behavior in base R). Currently I'm issuing a warning message and just take the first element of the vector index. We could change this to an error it that's better. ## How was this patch tested? new tests Author: actuaryzhang <actuaryzhang10@gmail.com> Closes #17017 from actuaryzhang/sparkRSubsetter.
Diffstat (limited to 'R/pkg/inst')
-rw-r--r--R/pkg/inst/tests/testthat/test_sparkSQL.R12
1 files changed, 12 insertions, 0 deletions
diff --git a/R/pkg/inst/tests/testthat/test_sparkSQL.R b/R/pkg/inst/tests/testthat/test_sparkSQL.R
index a7259f362e..ce0f5a198a 100644
--- a/R/pkg/inst/tests/testthat/test_sparkSQL.R
+++ b/R/pkg/inst/tests/testthat/test_sparkSQL.R
@@ -1015,6 +1015,18 @@ test_that("select operators", {
expect_is(df[[2]], "Column")
expect_is(df[["age"]], "Column")
+ expect_warning(df[[1:2]],
+ "Subset index has length > 1. Only the first index is used.")
+ expect_is(suppressWarnings(df[[1:2]]), "Column")
+ expect_warning(df[[c("name", "age")]],
+ "Subset index has length > 1. Only the first index is used.")
+ expect_is(suppressWarnings(df[[c("name", "age")]]), "Column")
+
+ expect_warning(df[[1:2]] <- df[[1]],
+ "Subset index has length > 1. Only the first index is used.")
+ expect_warning(df[[c("name", "age")]] <- df[[1]],
+ "Subset index has length > 1. Only the first index is used.")
+
expect_is(df[, 1, drop = F], "SparkDataFrame")
expect_equal(columns(df[, 1, drop = F]), c("name"))
expect_equal(columns(df[, "age", drop = F]), c("age"))