Tylko
8%
kandydatów
potrafi
zdefiniować
różnice
między
tymi
metodami.
Czy
Ty
potrafisz
je
rozróżnić?
Spark jest frameworkiem do szybkiego przetwarzania obszernych zbiorów danych w celu wykonywania złożonych analiz na dużą skalę. Proces może odbywać się w trybie przetwarzania strumieniowego (realizowany w czasie rzeczywistym) oraz wsadowego.
RDD (Resilient Distributed Dataset) to podstawowa jednostka bloku danych rozproszona po węzłach przetwarzających dane w pamięci. Ten logiczny podział nazywamy dokładnie podziałem na partycje.
Spark umożliwia nam równoległe uruchamianie obliczeń na partycjach. W celu zapewnienia efektywnych obliczeń musimy dobrze pojąć sposób partycjonowania danych, a także nauczyć się nimi zarządzać.
Kiedy już utworzymy DataFrame z określonym podziałem na partycje, możemy przystąpić do wykorzystania jednej z dwóch dostępnych metod w celu ich przeorganizowania.
Zacznijmy więc od wyróżnienia tych dwóch metod, abyśmy następnie mogli w sposób jasny wyodrębnić różnice między nimi.
Metoda coalesce
Służy przede wszystkim do zredukowania liczby partycji w DataFrame. Algorytm jest szybki w wielu przypadku dzięki temu, że minimalizuje potrzebę przenoszenia danych pomiędzy partycjami. Metoda coalesce nie może zostać wykorzystana do zwiększenia liczby partycji.
Metoda repartition
Służy do zwiększenia bądź zmniejszenia liczby partycji w DataFrame. Algorytm repartycjonowania wykonuje pełną reorganizację danych pomiędzy partycjami i stara się je podzielić na równe części. Jest to bardzo kosztowna operacja i powinna być wykorzystywana jedynie w uzasadnionych przypadkach.
Różnice pomiędzy coalesce i repartition
Podstawową różnicę możemy więc dostrzec na poziomie algorytmu organizacji danych. Podczas, gdy repartition wykonuje zawsze pełną reorganizację danych i stara się równo podzielić dane na partycje, coalesce łączy dotychczasowe partycje i minimalizuje zbędne transfery danych.
Z przeprowadzonych przez nas procesów rekrutacyjnych odnotowaliśmy, że bardzo niewielka liczba kandydatów – jedyne 8% (!) dostrzega różnice w tych metodach, dlatego zwracamy na to Waszą uwagę w dzisiejszej publikacji.