Попытка использовать функцию gapply в блоках данных для параллельной обработки.Есть две проблемы, с которыми я сталкиваюсь: при использовании кода, упомянутого в документации, иногда, когда я запускаю, он дает мне десериализатор == "byte" не TRUE.Он не согласован, иногда он запускается, иногда нет - я хочу передать пользовательскую функцию для gapply аргументов из другого пакета, но он выдает ошибку о том, что функция не может быть найдена
Есть кто-нибудьвозникла похожая проблема или идеи, как решить эту проблему?
library(SparkR)
library(tsintermittent)
df <- createDataFrame (list(list(1L, 1, "1", 0.1), list(1L, 2, "1", 0.2), list(3L, 3, "3", 0.3)), c("a", "b", "c", "d"))
schema <- structType(structField("a", "integer"), structField("c",
"string"),structField("avg", "double"))
result <- SparkR::gapply( df, c("a", "c"),
function(key, x) {
#library(tsintermittent)
y <- data.frame(key, crost(x$d), stringsAsFactors = FALSE)
}, schema)
head(result)
Ошибка: -
org.apache.spark.SparkException: R computation failed with
Error in compute(mode, partition, serializer, deserializer, keys[[i]], :
deserializer == "byte" is not TRUE
Calls: compute -> stopifnot