Как я могу оптимизировать мое искровое приложение, чтобы объединить два диска с размером, превышающим размер кластерной памяти? - PullRequest
0 голосов
/ 25 января 2019

Я хочу присоединиться к двум RDD, каждый из которых занимает 10 ГБ памяти. Но у меня кластерная память всего 15 ГБ. Можно ли как-то оптимизировать код, чтобы мы могли присоединиться к этим СДР?

Я думал о сохранении RDD в DISK, но, похоже, он не работает. Есть ли какая-либо методика оптимизации, которую мы можем использовать для решения такой проблемы?

1 Ответ

0 голосов
/ 25 января 2019

Необязательно, чтобы кластер имел больше памяти, чем набор данных. Однако это помогает повысить производительность.

Сохранение DISK_ONLY не поможет, если у вас есть одно присоединение. В случае, если вы пытаетесь создать несколько объединений, вам нужно будет сохранить их и подсчитать, чтобы форсировать оценку DAG.

В любом случае, лучший способ - увеличить разделы набора данных и раздел shuflle (по умолчанию 200).

spark.sql.shuffle.partitions=5000

, а затем присоединиться.

...