Обработка большого файла требует времени и заполнения оперативной памяти

Я обрабатываю файл с 10 millions записями, которые должны быть зациклены среди 8 millions records, которые также будут зациклены 150000, я пытался разделить 150000 на 30000 каждый, но все равно заполняет оперативную память 500GB, пробовал многопроцессорную обработку, но все равно заполняет мою память. делаю это почти неделю, но в итоге я получаю killing allprocessesbecause they fill my memory,any help would be appreciated. the coding part ofmultiprocessing`здесь< /а>


person Eliethesaiyan    schedule 22.06.2016    source источник
comment
Что вы имеете в виду под зацикливанием среди 8 миллионов записей, а также зацикливанием на 150000? У вас есть простой пример подходов, которые вы пробовали?   -  person arewm    schedule 22.06.2016
comment
в основном ... 10 миллионов показов пользователей рекомендуются разным 150000, у каждого пользователя есть рекомендация по товару. которых в общей сложности 8 миллионов.. для каждого пользователя я должен получить все его рекомендации, которые я получил от впечатлений (10 миллионов). в основном, я не могу получить рекомендации пользователей, не читая все эти записи в памяти. возможно, это сделать это в пакете пользователей ... даже 10 тысяч пользователей заполняют память, которая у меня есть!   -  person Eliethesaiyan    schedule 22.06.2016
comment
Это мало что проясняет. Это 10 million показов для каждого из 150000 пользователей или для всех пользователей? Являются ли впечатления от 8 million разными предметами? Что означает, что у каждого пользователя есть рекомендательный товар? Каков формат данных? Являются ли строки ключевыми для показа и включают связанного пользователя/элемент? Можно ли предварительно загрузить элементы или пользователей? Пожалуйста, обновите исходный вопрос с разъяснением.   -  person arewm    schedule 22.06.2016
comment
Кроме того, предоставьте дополнительную информацию о ваших попытках реализации. Как вы пытаетесь читать и анализировать записи? Вы пытаетесь одновременно прочитать все подмножество в памяти или читаете построчно? Что вы подразумеваете под тем, что пробовали многопроцессорность?   -  person arewm    schedule 22.06.2016
comment
когда пользователь регистрируется на веб-сайте ... ему дается список рекомендуемых заданий ... каждая рекомендация - это идентификатор пользователя с идентификаторами элементов ... так что в основном ... его список из 10 миллионов ... элементы различаются ... всего ... это 8 миллионов разных предметов.. так что для каждого пользователя я должен получить предмет, который ему рекомендовали... у меня 150000 пользователей... да... я читаю построчно... я решил разделить пользователей... и обработайте пакет из 30,20,10 КБ, так как память снова и снова переполнялась ... для многопроцессорной обработки ... я разместил ссылку в вопросах, которые подчеркивают мою проблему с кодами.   -  person Eliethesaiyan    schedule 22.06.2016