10 GB в CSV это немного. при чтении в память это думаю спокойно влезет и в 4 GB. если же у вас проблема вообще сложная то напишите скрипты. один должен отсортировать строки всех файлов по ключу. второй скрипт для мерджа должен просто бежать последовательно по 2м файлам и соединять ключи и результат писать в файл. думаю так вы уложитесь даже в килобайты
пытался бродкаст джоином сделать, выставлял repartition на 900, дал драйверу 11 гигов и увеличил время бродкаст джоина, сваливается с Out of Memory (