r - 使用 sparklyr 拆分日期和时间变量
问题描述
我正在尝试处理 spark 数据框中的日期和时间变量 (dttm)。我正在使用 sparklyr 和 dplyr。这是我的问题...
相关列的每一行都采用以下格式:
- 2018-06-11 22:06:45
我想将此日期和时间列 (dttm) 拆分为两列:
- 第一个日期:2018-06-11 (yyyy-mm-dd)
- 第二个时间:22:06:45 (hh:mm:ss)
所以首先,我使用 regexp_replace 和 mutate 来创建时间列:
spark_df %>% mutate(time = regexp_replace(date_and_time, "^[^_]* ", ""))
这是我在新专栏“时间”中获得的内容:
- 00:06:45
所以代码几乎可以工作,唯一的问题是前两个数字转换为 00。
解决方案
如果它不能解决您的问题,这可能是一个很好的起点。
dates <- data.frame(date =
c("2018-06-11 22:06:45", "2018-06-11 22:07:45", "2019-06-11 22:06:45"))
tbl <- copy_to(sc, dates)
tbl %>% mutate(new_date = as.POSIXct(date)) %>%
mutate(day = as.Date(new_date),
time = paste0(hour(new_date), ":", minute(new_date), ":",
second(new_date)))
# date new_date day time
# <chr> <dttm> <date> <chr>
# 1 2018-06-11 22:06:45 2018-06-11 12:06:45 2018-06-11 22:6:45
# 2 2018-06-11 22:07:45 2018-06-11 12:07:45 2018-06-11 22:7:45
# 3 2019-06-11 22:06:45 2019-06-11 12:06:45 2019-06-11 22:6:45
推荐阅读
- user-interface - 小米的 Unity3d UI 问题
- python - 测试列表 A 是否包含在列表 B 中
- python - 是否可以将 lazarus 表单和 python 程序结合到可交付的应用程序中?
- docker - 在 Docker 中为当前用户启用 root
- javascript - 类 - 通过等待返回数据?
- php - 如何在 PHP 中制作单个 $format 元素
- django - 如何使用结构或其他方式将我的 conda env 部署到 VPS?
- python - 执行 `pip install mod_wsgi` 时`无法打开包含文件:'apr_perms_set.h'`
- r - 如何调试安装 R 包失败?
- python - 如何用硒循环点击并用bs4刮掉每个表?