1) найдите количество строк в таблице и максимальный кусок таблицы, который вы можете извлечь, добавив order by [column] limit [number] offset 0
и разумно увеличив число номеров
2) добавить цикл, который будет производить sql с найденным вами пределом и увеличивать смещение, т. Е. Если вы сможете получить 10 тыс. Строк, ваши операторы будут:
... limit 10000 offset 0;
... limit 10000 offset 10000;
... limit 10000 offset 20000;
пока вы не достигнете числа строк таблицы
3) в том же цикле добавьте каждый новый полученный набор строк в ваш фрейм данных.
p.s. это будет работать, если вы не столкнетесь с какими-либо проблемами с памятью / диском на стороне клиента, что я не могу гарантировать, поскольку у вас есть такая проблема в кластере, который, вероятно, является аппаратным обеспечением более высокого класса. Чтобы избежать этой проблемы, вы просто пишете новый файл на каждой итерации вместо добавления.
Кроме того, весь подход, вероятно, не так. Вам лучше выгрузить таблицу на S3, что довольно быстро, поскольку данные копируются с каждого узла независимо, а затем выполните все необходимые действия с плоским файлом на S3, чтобы преобразовать его в нужный формат.