Kiedy jawnie wywołuję rdd.cache, widzę na karcie pamięci konsoli świec, że tylko ułamek rdd jest faktycznie buforowany. Moje pytanie brzmi: gdzie są pozostałe części? W jaki sposób Spark decyduje, która część pozostawi w pamięci podręcznej?Pamięć podręczna z iskrami zachowuje tylko ułamek RDD
To samo pytanie dotyczy początkowych nieprzetworzonych danych wczytanych przez sc.textFile(). Rozumiem, że te pliki rdd są automatycznie buforowane, mimo że tabela pamięci konsoli z iskrami nie wyświetla żadnych informacji na temat ich stanu pamięci podręcznej. Czy wiemy, ile z nich jest buforowanych, a nie brakuje?
Dzięki za wyjaśnienie. Widziałem niski procent pamięci podręcznej. Wygląda na to, że brakująca część jest spowodowana brakiem pamięci w executorach iskier. Nie mogę być tego pewien. Ponadto raz przeczytałem, że dane wejściowe są automatycznie buforowane. Nie mogę już znaleźć tego artykułu. Będę dalej szukać. – bhomass
Domyślna pamięć podręczna ma maksymalnie 300 m. Zakładam (domyślny rozmiar sterty to 512 MB * 0,6 pamięci, minus trochę narzutów). To zależy od konfiguracji, jeśli potrzebujesz zwiększyć pamięć sterownika lub executora. Czy używasz Sparka lokalnie lub z klastrem? Jeśli jesteś lokalnie, musisz tylko zmienić "spark.driver.memory". – stholzm
Jeśli buforujesz, ponieważ początkowy krok jest drogi do wyliczenia i buforowania, ponieważ obiekt w pamięci nie jest wymagany, lepszym rozwiązaniem byłoby użycie metody persit z alternatywnym poziomem pamięci. https://spark.apache.org/docs/latest/programming-guide.html#rdd-persistence MEMORY_ONLY_SET, pozwala ci wycisnąć więcej w pamięci (x4 z moją strukturą danych), opcje DISK pozwalają na buforowanie na dysku –