Коллеги, помогайте! ))
В одной спарковской джобе - в запросе - захотел сделать много мелких бродкастов, чтобы избавиться от SortMergeJoin. Ну, относительно мелких, мож мегабайт по двести, а может и по сотне килобайт. Всего таких бродкастов в запросе бывает около двух тысяч, в конкретном кейсе - пятьсот. Это изменения в данных, тут как повезёт.
Но не взлетело, зависает с постоянно повторяемой ошибкой: WARN TaskMemoryManager: Failed to allocate a page ({тут размер} bytes), try again
Экзекуторам давал по восемь ядер и по 12 Гб+12Overhead, на драйвере 16+12
Юзаю G1GC, с некоторыми настройками, могу скопипастить, если поможет
Код:
Join(
Filter(partitionFilter, targetTable),
ResolvedHint(
Project(pkAttributes, Filter(diffDelFilter, sourceTable)),
HintInfo(broadcast = true)),
LeftAnti,
Some(joinFilter)
)