Необязательно, чтобы кластер имел больше памяти, чем набор данных. Однако это помогает повысить производительность.
Сохранение DISK_ONLY не поможет, если у вас есть одно присоединение. В случае, если вы пытаетесь создать несколько объединений, вам нужно будет сохранить их и подсчитать, чтобы форсировать оценку DAG.
В любом случае, лучший способ - увеличить разделы набора данных и раздел shuflle (по умолчанию 200).
spark.sql.shuffle.partitions=5000
, а затем присоединиться.