У тебя вся проблема в том, что при получении данных на драйвер - у тебя падает с ООМ. Есть решение, в коде разделить rdd на мелкие, и последовательно их получать, выводить данные
Тогда у тебя в драйвером процессе не сразу загрузится весь хип, а только часть. А то, что мы там шаманим с памятью спарка - это все фигня, он по идее по дефолту юзает диск и не упадет