У меня есть код, который значительно медленнее после перехода с sparklyr 0.8.4 на любую последующую версию. Ниже приведен пример, который демонстрирует проблему, с которой я столкнулся. В моей тестовой системе код выполняется примерно за 15-20 секунд при 0,8,4 и 200-300 секунд для всех последующих версий
Что-то не так с кодом, вызывающим замедление? Или, может быть, какой-то параметр конфигурации мне нужно использовать? Это происходит с искрой 2.3.x и 2.4.x. dplyr, dbplyr, rlang и др. c. все используют последнюю версию.
Одна вещь, которую я попробовал, это добавление параметра group_by = 'X1'
к вызову spark_apply. Он работал быстрее, но не так быстро, как версия 0.8.4.
library(sparklyr)
sc = spark_connect(master=Sys.getenv("SPARK_MASTER_URL"))
names <- c("Alvin", "Betty", "Charlie", "Denise", "Edward", "Francine", "George", "Harriet", "Igor", "Juliet")
rdf <- data.frame(replicate(50, sample(names, 5000, replace = T)))
df1 <- sdf_copy_to(sc, rdf)
sa1 <- df1 %>% spark_apply( function(e) {
library(digest);
sub = e['X1'];
subhash = apply(sub, 1, digest, algo = 'md5', seed = 'f39a696e276d3123eced4f4450024333793a219cb6feb8b567689589cd6a7499');
e['X1'] = subhash;
e
})
sa2 <- sa1 %>% collect()
spark_disconnect(sc)