Rozproszone buforowanie ze zmiennymi emisji: Apache Spark



W tym poście na blogu omówiono rozproszone buforowanie ze zmiennymi emisji i rozpoczęcie wydajnej dystrybucji dużych wartości w programowaniu platformy Spark.

Nadesłane przez Prithviraj Bose





Zmienne rozgłaszania są przydatne, gdy duże zestawy danych muszą być buforowane w plikach wykonawczych. Ten blog wyjaśnia, jak zacząć.

Co to są zmienne rozgłaszania?



Zmienne rozgłaszania w Apache Spark to mechanizm udostępniania zmiennych między modułami wykonawczymi, które mają być przeznaczone tylko do odczytu. Bez zmiennych rozgłoszeniowych te zmienne byłyby wysyłane do każdego modułu wykonawczego dla każdej transformacji i akcji, co może spowodować obciążenie sieci. Jednak w przypadku zmiennych rozgłoszeniowych są one wysyłane raz do wszystkich programów wykonawczych i przechowywane w pamięci podręcznej do wykorzystania w przyszłości.

Przykład zastosowania zmiennych rozgłaszania

Wyobraź sobie, że dokonując transformacji, musimy przeszukać dużą tabelę kodów pocztowych / pinów. W tym przypadku nie jest możliwe wysyłanie dużej tabeli wyszukiwania za każdym razem do programów wykonawczych, ani nie możemy za każdym razem przesyłać zapytań do bazy danych. Rozwiązaniem powinno być przekonwertowanie tej tabeli odnośników na zmienne emisji, a Spark zapisze ją w pamięci podręcznej w każdym module wykonawczym na przyszłość.

Weźmy prosty przykład, aby zrozumieć powyższe pojęcia. Mamy plik CSV z nazwami krajów i ich stolicami. Plik CSV można znaleźć tutaj .



CSV-file-distributed-caching

Zakładając, że przetwarzamy dane demograficzne krajów i musimy zdobyć stolicę tego kraju. W takim przypadku możemy przekonwertować dane z pliku CSV na zmienną rozgłoszeniową.

samouczek narzędzia talend etl pdf

Najpierw ładujemy plik CSV na mapę, jeśli plik zostanie znaleziony, metoda zwraca Niektóre kraje) w przeciwnym razie wraca Żaden .

Po pomyślnym załadowaniu pliku CSV konwertujemy mapę na zmienną rozgłoszeniową i używamy jej w naszym programie.

W powyższym fragmencie kodu ładujemy plik CSV na mapę kraje następnie konwertujemy tę mapę na zmienną rozgłoszeniową kraje Cache . Następnie tworzymy RDD z kluczy kraje . w searchCountryDetails Metoda wyszukuje wszystkie kraje zaczynające się od litery zdefiniowanej przez użytkownika, a metoda zwraca RDD krajów wraz z ich wielkimi literami. Zmienna rozgłoszeniowa countrieCache służy do wyszukiwania wielkich liter.
W ten sposób nie musimy przesyłać całych danych CSV za każdym razem, gdy szukamy.

Kod dla searchCountryDetails pokazano poniżej,

Można znaleźć cały kod źródłowy tutaj .

Masz do nas pytanie? Wspomnij o nich w sekcji komentarzy, a skontaktujemy się z Tobą.

Powiązane posty:

Objaśnienie akumulatorów iskier

Apache Spark connectByKey Poradnik