在 Sparklyr 中将字符串转换为时间戳

Convert String to timestamp in Sparklyr

我想将 String 转换为时间戳,我使用了下面的代码,但时间戳增加了 4 小时,如果你能帮我解决这个问题,我将不胜感激

我用的是 Sparklyr。

fds<- fds %>%  
  mutate(time2 = from_unixtime(
    unix_timestamp(transaction_time, "yyyy-MM-ddHH:mm:ss"), "yyyy-MM-dd HH:mm:ss"))
fds<- fds %>% mutate(transaction_time_2 = to_timestamp(time2))

transaction_time 是这种格式的字符串 '2018-05-3016:00:40' 通过使用 from_unixtime,它已转换为 ''2018-05-30 16:00:40',通过使用 to_timestamp,它已转换为 2018-05-30 20:00:40。除了 20 小时,一切都正确,我仍然期望 16。

我遇到了同样的问题,我想是和时区设置有关 在程序的顶部尝试以下操作,然后问题就会消失:

sparklyr::invoke_static(sc, "java.util.TimeZone",  "getTimeZone", "GMT") %>%
  sparklyr::invoke_static(sc, "java.util.TimeZone", "setDefault", .)

查看此答案了解更多详情: