Repository: spark
Updated Branches:
  refs/heads/master 05f83c532 -> 110ce1f27


[SPARK-20892][SPARKR] Add SQL trunc function to SparkR

## What changes were proposed in this pull request?

Add SQL trunc function

## How was this patch tested?
standard test

Author: actuaryzhang <actuaryzhan...@gmail.com>

Closes #18291 from actuaryzhang/sparkRTrunc2.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/110ce1f2
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/110ce1f2
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/110ce1f2

Branch: refs/heads/master
Commit: 110ce1f27b66905afada6b5fd63c34fbf7602739
Parents: 05f83c5
Author: actuaryzhang <actuaryzhan...@gmail.com>
Authored: Sun Jun 18 18:00:27 2017 -0700
Committer: Felix Cheung <felixche...@apache.org>
Committed: Sun Jun 18 18:00:27 2017 -0700

----------------------------------------------------------------------
 R/pkg/NAMESPACE                       |  1 +
 R/pkg/R/functions.R                   | 29 +++++++++++++++++++++++++++++
 R/pkg/tests/fulltests/test_sparkSQL.R |  2 ++
 3 files changed, 32 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/110ce1f2/R/pkg/NAMESPACE
----------------------------------------------------------------------
diff --git a/R/pkg/NAMESPACE b/R/pkg/NAMESPACE
index 4e3fe00..229de4a 100644
--- a/R/pkg/NAMESPACE
+++ b/R/pkg/NAMESPACE
@@ -357,6 +357,7 @@ exportMethods("%<=>%",
               "to_utc_timestamp",
               "translate",
               "trim",
+              "trunc",
               "unbase64",
               "unhex",
               "unix_timestamp",

http://git-wip-us.apache.org/repos/asf/spark/blob/110ce1f2/R/pkg/R/functions.R
----------------------------------------------------------------------
diff --git a/R/pkg/R/functions.R b/R/pkg/R/functions.R
index 06a9019..7128c3b 100644
--- a/R/pkg/R/functions.R
+++ b/R/pkg/R/functions.R
@@ -4015,3 +4015,32 @@ setMethod("input_file_name", signature("missing"),
             jc <- callJStatic("org.apache.spark.sql.functions", 
"input_file_name")
             column(jc)
           })
+
+#' trunc
+#'
+#' Returns date truncated to the unit specified by the format.
+#'
+#' @param x Column to compute on.
+#' @param format string used for specify the truncation method. For example, 
"year", "yyyy",
+#' "yy" for truncate by year, or "month", "mon", "mm" for truncate by month.
+#'
+#' @rdname trunc
+#' @name trunc
+#' @family date time functions
+#' @aliases trunc,Column-method
+#' @export
+#' @examples
+#' \dontrun{
+#' trunc(df$c, "year")
+#' trunc(df$c, "yy")
+#' trunc(df$c, "month")
+#' trunc(df$c, "mon")
+#' }
+#' @note trunc since 2.3.0
+setMethod("trunc",
+          signature(x = "Column"),
+          function(x, format) {
+            jc <- callJStatic("org.apache.spark.sql.functions", "trunc",
+                              x@jc, as.character(format))
+            column(jc)
+          })

http://git-wip-us.apache.org/repos/asf/spark/blob/110ce1f2/R/pkg/tests/fulltests/test_sparkSQL.R
----------------------------------------------------------------------
diff --git a/R/pkg/tests/fulltests/test_sparkSQL.R 
b/R/pkg/tests/fulltests/test_sparkSQL.R
index af52906..911b73b 100644
--- a/R/pkg/tests/fulltests/test_sparkSQL.R
+++ b/R/pkg/tests/fulltests/test_sparkSQL.R
@@ -1382,6 +1382,8 @@ test_that("column functions", {
   c20 <- to_timestamp(c) + to_timestamp(c, "yyyy") + to_date(c, "yyyy")
   c21 <- posexplode_outer(c) + explode_outer(c)
   c22 <- not(c)
+  c23 <- trunc(c, "year") + trunc(c, "yyyy") + trunc(c, "yy") +
+    trunc(c, "month") + trunc(c, "mon") + trunc(c, "mm")
 
   # Test if base::is.nan() is exposed
   expect_equal(is.nan(c("a", "b")), c(FALSE, FALSE))


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to