You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by fe...@apache.org on 2017/05/07 23:24:46 UTC
spark git commit: [SPARK-20550][SPARKR] R wrapper for Dataset.alias
Repository: spark
Updated Branches:
refs/heads/master 500436b43 -> 1f73d3589
[SPARK-20550][SPARKR] R wrapper for Dataset.alias
## What changes were proposed in this pull request?
- Add SparkR wrapper for `Dataset.alias`.
- Adjust roxygen annotations for `functions.alias` (including example usage).
## How was this patch tested?
Unit tests, `check_cran.sh`.
Author: zero323 <ze...@users.noreply.github.com>
Closes #17825 from zero323/SPARK-20550.
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/1f73d358
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/1f73d358
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/1f73d358
Branch: refs/heads/master
Commit: 1f73d3589a84b78473598c17ac328a9805896778
Parents: 500436b
Author: zero323 <ze...@users.noreply.github.com>
Authored: Sun May 7 16:24:42 2017 -0700
Committer: Felix Cheung <fe...@apache.org>
Committed: Sun May 7 16:24:42 2017 -0700
----------------------------------------------------------------------
R/pkg/R/DataFrame.R | 24 ++++++++++++++++++++++++
R/pkg/R/column.R | 16 ++++++++--------
R/pkg/R/generics.R | 11 +++++++++++
R/pkg/inst/tests/testthat/test_sparkSQL.R | 10 ++++++++++
4 files changed, 53 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/1f73d358/R/pkg/R/DataFrame.R
----------------------------------------------------------------------
diff --git a/R/pkg/R/DataFrame.R b/R/pkg/R/DataFrame.R
index 1c88692..b56dddc 100644
--- a/R/pkg/R/DataFrame.R
+++ b/R/pkg/R/DataFrame.R
@@ -3745,3 +3745,27 @@ setMethod("hint",
jdf <- callJMethod(x@sdf, "hint", name, parameters)
dataFrame(jdf)
})
+
+#' alias
+#'
+#' @aliases alias,SparkDataFrame-method
+#' @family SparkDataFrame functions
+#' @rdname alias
+#' @name alias
+#' @export
+#' @examples
+#' \dontrun{
+#' df <- alias(createDataFrame(mtcars), "mtcars")
+#' avg_mpg <- alias(agg(groupBy(df, df$cyl), avg(df$mpg)), "avg_mpg")
+#'
+#' head(select(df, column("mtcars.mpg")))
+#' head(join(df, avg_mpg, column("mtcars.cyl") == column("avg_mpg.cyl")))
+#' }
+#' @note alias(SparkDataFrame) since 2.3.0
+setMethod("alias",
+ signature(object = "SparkDataFrame"),
+ function(object, data) {
+ stopifnot(is.character(data))
+ sdf <- callJMethod(object@sdf, "alias", data)
+ dataFrame(sdf)
+ })
http://git-wip-us.apache.org/repos/asf/spark/blob/1f73d358/R/pkg/R/column.R
----------------------------------------------------------------------
diff --git a/R/pkg/R/column.R b/R/pkg/R/column.R
index 147ee4b..5740780 100644
--- a/R/pkg/R/column.R
+++ b/R/pkg/R/column.R
@@ -130,19 +130,19 @@ createMethods <- function() {
createMethods()
-#' alias
-#'
-#' Set a new name for a column
-#'
-#' @param object Column to rename
-#' @param data new name to use
-#'
#' @rdname alias
#' @name alias
#' @aliases alias,Column-method
#' @family colum_func
#' @export
-#' @note alias since 1.4.0
+#' @examples \dontrun{
+#' df <- createDataFrame(iris)
+#'
+#' head(select(
+#' df, alias(df$Sepal_Length, "slength"), alias(df$Petal_Length, "plength")
+#' ))
+#' }
+#' @note alias(Column) since 1.4.0
setMethod("alias",
signature(object = "Column"),
function(object, data) {
http://git-wip-us.apache.org/repos/asf/spark/blob/1f73d358/R/pkg/R/generics.R
----------------------------------------------------------------------
diff --git a/R/pkg/R/generics.R b/R/pkg/R/generics.R
index e835ef3..3c84bf8 100644
--- a/R/pkg/R/generics.R
+++ b/R/pkg/R/generics.R
@@ -387,6 +387,17 @@ setGeneric("value", function(bcast) { standardGeneric("value") })
#' @export
setGeneric("agg", function (x, ...) { standardGeneric("agg") })
+#' alias
+#'
+#' Returns a new SparkDataFrame or a Column with an alias set. Equivalent to SQL "AS" keyword.
+#'
+#' @name alias
+#' @rdname alias
+#' @param object x a SparkDataFrame or a Column
+#' @param data new name to use
+#' @return a SparkDataFrame or a Column
+NULL
+
#' @rdname arrange
#' @export
setGeneric("arrange", function(x, col, ...) { standardGeneric("arrange") })
http://git-wip-us.apache.org/repos/asf/spark/blob/1f73d358/R/pkg/inst/tests/testthat/test_sparkSQL.R
----------------------------------------------------------------------
diff --git a/R/pkg/inst/tests/testthat/test_sparkSQL.R b/R/pkg/inst/tests/testthat/test_sparkSQL.R
index 232246d..0856bab 100644
--- a/R/pkg/inst/tests/testthat/test_sparkSQL.R
+++ b/R/pkg/inst/tests/testthat/test_sparkSQL.R
@@ -1223,6 +1223,16 @@ test_that("select with column", {
expect_equal(columns(df4), c("name", "age"))
expect_equal(count(df4), 3)
+ # Test select with alias
+ df5 <- alias(df, "table")
+
+ expect_equal(columns(select(df5, column("table.name"))), "name")
+ expect_equal(columns(select(df5, "table.name")), "name")
+
+ # Test that stats::alias is not masked
+ expect_is(alias(aov(yield ~ block + N * P * K, npk)), "listof")
+
+
expect_error(select(df, c("name", "age"), "name"),
"To select multiple columns, use a character vector or list for col")
})
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org