Разпределено кеширане с излъчвани променливи: Apache Spark



Тази публикация в блога обсъжда разпределеното кеширане с излъчвани променливи и ви дава началото на ефективното разпространение на големи стойности в програмирането на Spark.

Принос от Prithviraj Bose





Излъчваните променливи са полезни, когато големи набори от данни трябва да бъдат кеширани в изпълнителите. Този блог обяснява как да започнете.

Какво представляват променливите за излъчване?



Излъчваните променливи в Apache Spark е механизъм за споделяне на променливи между изпълнители, които са предназначени да бъдат само за четене. Без излъчвани променливи тези променливи ще бъдат изпратени до всеки изпълнител за всяка трансформация и действие и това може да доведе до режийни разходи в мрежата. Въпреки това, с излъчваните променливи, те се изпращат веднъж до всички изпълнители и се кешират за бъдеща справка.

за какво се използва науката за данните

Случай за използване на излъчени променливи

Представете си, че докато правим трансформация, трябва да търсим голяма таблица с пощенски кодове / пин кодове. Тук не е възможно да изпращаме голямата справочна таблица всеки път до изпълнителите, нито можем да правим запитване до базата данни всеки път. Решението трябва да бъде да превърнете тази справочна таблица в променливи за излъчване и Spark ще я кешира във всеки изпълнител за бъдещи справки.

Нека вземем прост пример, за да разберем горните концепции. Имаме CSV файл с имена на държави и техните столици. CSV файлът може да бъде намерен тук .



CSV-file-distributed-caching

Ако приемем, че обработваме демографски данни за държави и трябва да получим столицата на тази държава. В този случай можем да конвертираме данните в CSV файла в променлива за излъчване.

Първо зареждаме CSV файла в карта, ако файлът бъде намерен, методът се връща Някои (държави) иначе се връща Нито един .

След успешно зареждане на CSV файла, ние конвертираме картата в променлива за излъчване и я използваме в нашата програма.

В кодовия фрагмент по-горе зареждаме CSV файла на карта държави след това преобразуваме тази карта в излъчвана променлива страни кеш . Впоследствие създаваме RDD от ключовете на държави . В searchCountryDetails метод търсим всички държави, започвайки с дефинирана от потребителя буква и методът връща RDD на страните заедно с техните столици. Излъчваната променлива countrieCache се използва за търсене на столиците.
По този начин не е необходимо да изпращаме всички CSV данни всеки път, когато трябва да търсим.

Кодът за searchCountryDetails е показано по-долу,

Може да се намери целият изходен код тук .

Имате въпрос към нас? Споменете ги в раздела за коментари и ние ще се свържем с вас.

Подобни публикации:

Обяснени акумулатори на искри

Apache Spark комбинацияByKey Обяснено