У меня есть огромные файлы для обработки. У меня есть необходимость выполнить set_index для одного столбца каждого файла.
Я читал, что set_index действительно дорогой и что мы должны уменьшить количество разделов. Я пробовал, но пока это не помогает.
Что необходимо для выполнения операций такого типа с огромными наборами данных? Каков идеальный размер для раздела в соответствии с памятью, связанной как с работником, так и с потоками?
Я заметил, что если я установлю, например, 8 рабочих и если у меня будет 30 ГБ, 70 ГБ или 100 ГБ на одного рабочего, я Подумайте, что-то не так в моей конфигурации (на данный момент на одном узле, но, надеюсь, скоро в кластерном режиме):
- Используемая память не равномерна / не распределена между рабочими, можно было бы d ie.
- У меня есть строка журнала с
Event loop was unresponsive in Worker for 12.02s. This is often caused by long-running GIL-holding functions or moving large chunks of data. This can cause timeouts and instability
Это проблема или нет вообще? - Мой работник умирает один за другим, пока я не потеряю всех своих работников
- Я могу сохранить только одну рабочую / несколько потоков, разделяющих всю память, но процесс будет очень медленным, и я думаю, что он закончится sh (один день ...)