Я подозреваю, что вы можете запустить это с другой конфигурацией.Сколько у вас исполнителей?Если у вас есть 100 исполнителей, и каждому из них выделено 32 ГБ в системе, которая имеет общую память 1 ТБ, вы быстро исчерпаете себя, поскольку каждый исполнитель пытается получить часть общей памяти объемом 3,2 ТБ (которая не существует).Если, с другой стороны, у вас работает 1 исполнитель, 32 ГБ, вероятно, недостаточно для выполнения задачи.Вы можете обнаружить, что запуск 20 исполнителей с 8 ГБ памяти каждый даст вам достаточно для выполнения задания (хотя, может быть, и медленно).
Когда у меня возникают проблемы с кадром данных в процессе ML, я обычно выполняю эти шаги дляУстранение неполадок: 1) Протестируйте метод на тривиально-маленьком фрейме данных: 10 объектов и 1000 строк.Чтобы избежать проблем с происхождением, я предлагаю вам уменьшить пример кадра в источнике, либо в вашем SQL с помощью оператора «limit», либо передав меньший CSV.Если метод не работает с вашим кодом, проблема с памятью может быть вторичной.2) Если метод не работает на банально малом массиве данных, начните исследовать ваши данные сами.Ваши функции все числовые?Есть ли у ваших функций нулевые значения?Наличие нечисловых или нулевых значений в ваших функциях может привести к сбою процедуры PCA (но не обязательно с ошибкой OutOfMemory). 3) Если данные правильно сформированы, а код правильно сформирован, начните масштабирование и убедитесь, чтосмотрите в ваш stderr и stdout в ваших узлах, как продолжить.Чтобы добраться до ваших узлов, у вас должна быть утилита (например, дистрибутив Cloudera из hadoop включает ClouderaManager, который позволяет вам просматривать ваши задания, затем этапы, а затем отдельные задачи для поиска stderr).