column_datetime_diff_functions {SparkR} | R Documentation |
Date time arithmetic functions defined for Column
.
add_months(y, x) datediff(y, x) date_add(y, x) date_format(y, x) date_sub(y, x) from_utc_timestamp(y, x) months_between(y, x) next_day(y, x) to_utc_timestamp(y, x) ## S4 method for signature 'Column' datediff(y, x) ## S4 method for signature 'Column' months_between(y, x) ## S4 method for signature 'Column,character' date_format(y, x) ## S4 method for signature 'Column,character' from_utc_timestamp(y, x) ## S4 method for signature 'Column,character' next_day(y, x) ## S4 method for signature 'Column,character' to_utc_timestamp(y, x) ## S4 method for signature 'Column,numeric' add_months(y, x) ## S4 method for signature 'Column,numeric' date_add(y, x) ## S4 method for signature 'Column,numeric' date_sub(y, x)
y |
Column to compute on. |
x |
For class
|
datediff
: Returns the number of days from y
to x
.
If y
is later than x
then the result is positive.
months_between
: Returns number of months between dates y
and x
.
If y
is later than x
, then the result is positive. If y
and x
are on the same day of month, or both are the last day of month, time of day will be ignored.
Otherwise, the difference is calculated based on 31 days per month, and rounded to 8 digits.
date_format
: Converts a date/timestamp/string to a value of string in the format
specified by the date format given by the second argument. A pattern could be for instance
dd.MM.yyyy
and could return a string like '18.03.1993'. All
pattern letters of java.text.SimpleDateFormat
can be used.
Note: Use when ever possible specialized functions like year
. These benefit from a
specialized implementation.
from_utc_timestamp
: This is a common function for databases supporting TIMESTAMP WITHOUT
TIMEZONE. This function takes a timestamp which is timezone-agnostic, and interprets it as a
timestamp in UTC, and renders that timestamp as a timestamp in the given time zone.
However, timestamp in Spark represents number of microseconds from the Unix epoch, which is not
timezone-agnostic. So in Spark this function just shift the timestamp value from UTC timezone to
the given timezone.
This function may return confusing result if the input is a string with timezone, e.g.
(2018-03-13T06:18:23+00:00
). The reason is that, Spark firstly cast the string to
timestamp according to the timezone in the string, and finally display the result by converting
the timestamp to string according to the session local timezone.
next_day
: Given a date column, returns the first date which is later than the value of
the date column that is on the specified day of the week. For example,
next_day("2015-07-27", "Sunday")
returns 2015-08-02 because that is the first Sunday
after 2015-07-27. Day of the week parameter is case insensitive, and accepts first three or
two characters: "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun".
to_utc_timestamp
: This is a common function for databases supporting TIMESTAMP WITHOUT
TIMEZONE. This function takes a timestamp which is timezone-agnostic, and interprets it as a
timestamp in the given timezone, and renders that timestamp as a timestamp in UTC.
However, timestamp in Spark represents number of microseconds from the Unix epoch, which is not
timezone-agnostic. So in Spark this function just shift the timestamp value from the given
timezone to UTC timezone.
This function may return confusing result if the input is a string with timezone, e.g.
(2018-03-13T06:18:23+00:00
). The reason is that, Spark firstly cast the string to
timestamp according to the timezone in the string, and finally display the result by converting
the timestamp to string according to the session local timezone.
add_months
: Returns the date that is numMonths (x
) after startDate (y
).
date_add
: Returns the date that is x
days after.
date_sub
: Returns the date that is x
days before.
datediff since 1.5.0
months_between since 1.5.0
date_format since 1.5.0
from_utc_timestamp since 1.5.0
next_day since 1.5.0
to_utc_timestamp since 1.5.0
add_months since 1.5.0
date_add since 1.5.0
date_sub since 1.5.0
Other data time functions:
column_datetime_functions
## Not run:
##D dts <- c("2005-01-02 18:47:22",
##D "2005-12-24 16:30:58",
##D "2005-10-28 07:30:05",
##D "2005-12-28 07:01:05",
##D "2006-01-24 00:01:10")
##D y <- c(2.0, 2.2, 3.4, 2.5, 1.8)
##D df <- createDataFrame(data.frame(time = as.POSIXct(dts), y = y))
## End(Not run)
## Not run:
##D tmp <- createDataFrame(data.frame(time_string1 = as.POSIXct(dts),
##D time_string2 = as.POSIXct(dts[order(runif(length(dts)))])))
##D tmp2 <- mutate(tmp, datediff = datediff(tmp$time_string1, tmp$time_string2),
##D monthdiff = months_between(tmp$time_string1, tmp$time_string2))
##D head(tmp2)
## End(Not run)
## Not run:
##D tmp <- mutate(df, from_utc = from_utc_timestamp(df$time, "PST"),
##D to_utc = to_utc_timestamp(df$time, "PST"))
##D head(tmp)
## End(Not run)
## Not run:
##D tmp <- mutate(df, t1 = add_months(df$time, 1),
##D t2 = date_add(df$time, 2),
##D t3 = date_sub(df$time, 3),
##D t4 = next_day(df$time, "Sun"))
##D head(tmp)
## End(Not run)