R SparkDataFrame POSIXlt не знает, как преобразовать 'x' в класс POSIXlt
Я пытаюсь получить числовой год из POSIXct SparkDataFrame с библиотекой lubridate, но получаю ошибку. Странно то, что он работает с обычными фреймами данных, но не с SparkDataFrames. см. код ниже.
Это несколько похожих вопросов о стековом потоке, но ответы работают только с фреймами данных, а не с SparkDataFrames. Мне нужно работать с ними, потому что набор данных огромен.
library("lubridate")
# Spark Data Frame
head(data_spark)
str(data_spark)
id date_h type
1 2018-03-02 Holiday
2 2018-01-01 Work
3 2012-02-12 Holiday
'SparkDataFrame': 3 variables:
$ id : int 1 2 3
$ date_h: POSIXct 2018-03-02 2018-01-01 2012-02-12
$ type : chr "Holiday" "Work" "Holiday"
# Normal Data Frame
head(data_frame)
str(data_frame)
id date_h type
1 2018-03-02 Holiday
2 2018-01-01 Work
3 2012-02-12 Holiday
'data.frame': 3 obs. of 3 variables:
$ id : int 1 2 3
$ date_h: POSIXct, format: "2018-03-02" "2018-01-01" ...
$ type : chr "Holiday" "Work" "Holiday"
Это прекрасно работает:
year_frame <- year(data_frame$date_h)
year_frame
2018 2018 2012
здесь я получил ошибку:
year_spark <- year(data_spark$date_h)
year_spark
Error in as.POSIXlt.default(x, tz = tz(x)): do not know how to convert 'x' to class “POSIXlt”
Traceback:
1. year(data_spark$date_h)
2. year.default(data_spark$date_h)
3. as.POSIXlt(x, tz = tz(x))
4. as.POSIXlt.default(x, tz = tz(x))
5. stop(gettextf("do not know how to convert '%s' to class %s",
. deparse(substitute(x)), dQuote("POSIXlt")), domain = NA)
Я понятия не имею, почему я получил эту ошибку