【问题标题】:Split Date and time variable with sparklyr使用 sparklyr 拆分日期和时间变量
【发布时间】:2019-11-02 07:37:45
【问题描述】:

我正在尝试处理 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。

【问题讨论】:

    标签: r apache-spark datetime dplyr sparklyr


    【解决方案1】:

    如果它不能解决您的问题,也许这可能是一个很好的起点。

    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
    

    【讨论】:

      猜你喜欢
      • 2013-10-18
      • 2021-11-08
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      相关资源
      最近更新 更多