【发布时间】:2019-03-18 04:12:11
【问题描述】:
当日期是字符串时,SparkR 函数 to_date 会正确地将其转换为日期格式,但当它是双精度时,则不会。
此外,R 包 zoo 也可以工作。
library(zoo)
df <- tibble::tibble(date = 17000.0)
as.Date(df$date)
# [1] "2016-07-18"
但是,SparkR 没有
df_spark <- as.DataFrame(df)
df_spark <- df_spark %>%
SparkR::mutate(date2 = to_date(df_spark$date, "MM/dd/yyyy"))
# org.apache.spark.sql.AnalysisException: cannot resolve 'unix_timestamp(`date`, 'MM/dd/yyyy')' due to data type mismatch: argument 1 requires (string or date or timestamp) type, however, '`date`' is of double type.
我需要 SparkR 解决方案将双精度转换为日期。
【问题讨论】:
-
我使用了它并尝试了 df % SparkR::mutate(date2 = SparkR::to_date(df_spark$date, "MM/dd/yyyy")) 但呈现为空。
-
谢谢!这些示例将字符串转换为日期,而我正在尝试将双精度转换为日期。您可以使用我的示例并提供代码以使用 SparkR 将双精度转换为日期吗?
标签: r apache-spark apache-spark-sql sparkr