Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - IASAedu 🇺🇦
Added 14 Jul 2024 🌐 UK

IASAedu 🇺🇦

@iasa_edu
Number of subscribers: 991
Photos: 22
Links: 606
Description:
Освітній проєкт для початківців у ІТ від @IASA_Student_Council Зворотний зв'язок: @IASAsuggestionBot Проблеми з навчанням: @iasa_stud_support_bot #Edu_recommends #Edu_professions #Edu_preparation #Edu_quiz #Edu_Academic #Edu_internship #IASA_stars
Source

IASAedu 🇺🇦 | Junior Data Engineer interview: Narrow vs Wide Transformations in Apac...

Telegram community logo - IASAedu 🇺🇦 IASAedu 🇺🇦 @iasa_edu
262 Views/Reach 2026-11-05 08:04 Message №1230
Junior Data Engineer interview: Narrow vs Wide Transformations in Apache Spark
#Edu_preparation

​У чому різниця між вузькими (narrow) та широкими (wide) трансформаціями в Apache Spark?

В Apache Spark трансформації — операції, що створюють новий RDD або DataFrame на основі наявних даних і виконуються лише після виклику дії (action). Вузькі (narrow) трансформації обробляють дані без обміну між вузлами, тоді як широкі (wide) потребують переміщення даних (shuffle). Ця різниця впливає на продуктивність Spark-пайплайнів.

Цей поділ базується на таких аспектах:

• Вузькі трансформації (Narrow Transformations):
Для обчислення партиції результату використовуються дані з однієї або кількох партицій батьківського датасету без необхідності їх перерозподілу між вузлами. Такі операції, як "filter()", "map()" та "flatMap()", виконуються локально, без Shuffle, що забезпечує високу швидкість обробки.

• Широкі трансформації (Wide Transformations):
Для обчислення партицій результату потрібні дані з різних партицій батьківського датасету. Це може вимагати Shuffle — переміщення даних між вузлами кластера, що створює межу між етапами (Stages). Типові приклади: "groupByKey()", "reduceByKey()", "repartition()" та "join()" (за винятком Broadcast Join).

• Вплив на продуктивність (Performance Bottlenecks):
Shuffle є ресурсомісткою операцією, оскільки потребує мережевого обміну даними, серіалізації та може використовувати диск для зберігання проміжних результатів. Тому широкі трансформації можуть ставати вузьким місцем (bottleneck) і суттєво сповільнювати виконання Spark-пайплайнів.

• Ризики збоїв (Data Skew & OOM):
Нерівномірний розподіл даних за ключами (Data Skew) під час Shuffle може перевантажувати окремі вузли, збільшувати час виконання та спричиняти помилки OutOfMemoryError (OOM). Щоб зменшити ці ризики, рекомендується застосовувати фільтрацію та відкидання непотрібних колонок до широких трансформацій, мінімізуючи обсяг даних для Shuffle.