Разделение даты и времени с помощью sparklyr - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь иметь дело с переменной даты и времени (dttm) в кадре данных искры.Я использую sparklyr и dplyr.Вот моя проблема ...

Каждая строка рассматриваемого столбца имеет следующий формат:

  • 2018-06-11 22: 06: 45

Я хочу разделить этот столбец даты и времени (dttm) на два столбца:

  • первый с датой: 2018-06-11 (гггг-мм-дд)
  • второй со временем: 22:06:45 (чч: мм: сс)

Итак, во-первых, я использовал regexp_replace и mutate для создания столбца времени:

spark_df %>% mutate(time = regexp_replace(date_and_time, "^[^_]* ", ""))

Вот что я получаю в моем новом столбце «время»:

  • 00: 06: 45

Итак, код почти работает,единственная проблема заключается в том, что две первые цифры конвертируются в 00.

1 Ответ

0 голосов
/ 26 июня 2019

Может быть, это может быть хорошей отправной точкой, если это не решит вашу проблему.

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
...