Contact

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.