在 sparklyr 中将变量转换为时间戳
Convert variable as Timestamp in sparklyr
我知道以前曾多次问过类似的问题,但我已经尝试了所有这些选项,但仍然没有得到想要的结果。
我有一个 sdf 作为 kl,格式如下:
CONSUMER_ID TimeStamp TimeStamp2
<dbl> <dbl> <chr>
1 958 20171201000002 20171201000002
2 985 20171201000005 20171201000005
我想将时间戳转换为 "yyyy/MM/dd H:M:S"
格式
我已经尝试了在网上找到的多个选项,但都不适用于此格式。
例如:
library(sparklyr)
library(dplyr)
ms_rech_10 = kl %>% mutate(time_2 = date(timestamp(unix_timestamp(TimeStamp2))))
ms_rech_12 = kl %>% mutate(time_2 = date(TimeStamp2))
ms_rech_12 = kl %>% mutate(time_2 = to_date(TimeStamp2))
但在每个代码中我得到以下输出:
CONSUMER_ID TimeStamp TimeStamp2 time_2
<dbl> <dbl> <chr> <date>
1 958 20171201000002 20171201000002 NA
2 985 20171201000005 20171201000005 NA
请按以下格式提供解决方案。
CONSUMER_ID TimeStamp TimeStamp2 time_2
<dbl> <dbl> <chr> <dttm>
1 958 20171201000002 20171201000002 2017/12/01 00:00:02
2 985 20171201000005 20171201000005 2017/12/01 00:00:05
谢谢!!
如果您需要格式化字符串(您不能格式化时间戳):
df <- copy_to(sc, tibble(Timestamp2=c("20171201000002", "20171201000005")))
df %>%
mutate(time2 = from_unixtime(
unix_timestamp(Timestamp2, "yyyyMMddHHmmss"), "yyyy/MM/dd HH:mm:ss"))
# Source: lazy query [?? x 2]
# Database: spark_connection
Timestamp2 time2
<chr> <chr>
1 20171201000002 2017/12/01 00:00:02
2 20171201000005 2017/12/01 00:00:05
否则就用to_timestamp(Timestamp2, "yyyyMMddHHmmss")
我知道以前曾多次问过类似的问题,但我已经尝试了所有这些选项,但仍然没有得到想要的结果。
我有一个 sdf 作为 kl,格式如下:
CONSUMER_ID TimeStamp TimeStamp2
<dbl> <dbl> <chr>
1 958 20171201000002 20171201000002
2 985 20171201000005 20171201000005
我想将时间戳转换为 "yyyy/MM/dd H:M:S"
格式我已经尝试了在网上找到的多个选项,但都不适用于此格式。
例如:
library(sparklyr)
library(dplyr)
ms_rech_10 = kl %>% mutate(time_2 = date(timestamp(unix_timestamp(TimeStamp2))))
ms_rech_12 = kl %>% mutate(time_2 = date(TimeStamp2))
ms_rech_12 = kl %>% mutate(time_2 = to_date(TimeStamp2))
但在每个代码中我得到以下输出:
CONSUMER_ID TimeStamp TimeStamp2 time_2
<dbl> <dbl> <chr> <date>
1 958 20171201000002 20171201000002 NA
2 985 20171201000005 20171201000005 NA
请按以下格式提供解决方案。
CONSUMER_ID TimeStamp TimeStamp2 time_2
<dbl> <dbl> <chr> <dttm>
1 958 20171201000002 20171201000002 2017/12/01 00:00:02
2 985 20171201000005 20171201000005 2017/12/01 00:00:05
谢谢!!
如果您需要格式化字符串(您不能格式化时间戳):
df <- copy_to(sc, tibble(Timestamp2=c("20171201000002", "20171201000005")))
df %>%
mutate(time2 = from_unixtime(
unix_timestamp(Timestamp2, "yyyyMMddHHmmss"), "yyyy/MM/dd HH:mm:ss"))
# Source: lazy query [?? x 2]
# Database: spark_connection
Timestamp2 time2
<chr> <chr>
1 20171201000002 2017/12/01 00:00:02
2 20171201000005 2017/12/01 00:00:05
否则就用to_timestamp(Timestamp2, "yyyyMMddHHmmss")