【发布时间】:2018-02-01 17:59:54
【问题描述】:
使用库sparklyr,我尝试以这种方式在 Spark 数据框中创建一个日期变量(在 R 中有效):
# Researching SPARK --------------------------------------------------------------------------
#library(data.table)
library(sparklyr)
library(dplyr)
setwd('C:/Users/aburnakov/Desktop')
#spark_install(version = "2.1.0")
r_spark_connection <- spark_connect(master = "local")
sample_dat <- data.frame(When = as.character(
c(
"2018-01-15 03:05:02.177"
, "2018-01-15 00:54:31.133"
, "2018-01-15 21:24:06.013"
, "2018-01-15 15:44:26.047"
, "2018-01-15 05:17:06.040"
, "2018-01-15 06:41:08.183"
, "2018-01-15 15:09:40.137"
, "2018-01-15 03:15:43.820"
, "2018-01-15 11:02:27.180"
, "2018-01-15 18:23:42.047"
)
)
)
write.csv(x = sample_dat, file = 'sample_dat.csv')
## write raw data from csv to spark env ------------------------------------------
sample_spark_df <- spark_read_csv(
sc = r_spark_connection
, name = 'sample_dat'
, path = 'sample_dat.csv'
, header = T
, infer_schema = F
, delimiter = ","
, quote = '"'
, escape = '`'
, charset = "UTF-8"
, null_value = NULL
, repartition = 10
, memory = F
, overwrite = T
)
## try either of two
sample_spark_df <- sample_spark_df %>%
mutate(
Date = as.Date(When, format = "%Y-%m-%d", tz = "")
)
sample_spark_df <- sample_spark_df %>%
mutate(
datetime_when = as.POSIXct(strptime(x = When, format = "%Y-%m-%d %H:%M:%OS", tz = ""))
)
## now observe the error
x <- collect(sample_spark_df)
这是为什么?我还能用指示格式和时区制作日期吗?
【问题讨论】:
-
我无法重现您的错误。你能包括一个 sample_spark_df 的样本吗?
-
@Rilcon42,我忘了提到奇怪的是,直到我尝试将对象从 spark 收集()到 R 以检查结果时才报告此错误。收集()失败。我会更新我的问题。
-
@Rilcon42,我实际上有问题 datetime_when = as.POSIXct(strptime(x = When, format = "%Y-%m-%d %H:%M:%OS ", tz = "")) 也得到另一个错误。