[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 <zero323@users.noreply.github.com> Closes #17825 from zero323/SPARK-20550.
This commit is contained in:
parent
500436b436
commit
1f73d3589a
|
@ -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)
|
||||
})
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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") })
|
||||
|
|
|
@ -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")
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue