Массив в CSV-файл с высокой производительностью - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть JSON файл с информацией о книге ок. 500MB и 300K строк. Я прочитал весь файл с;

content = file_get_contents(jsonFile);

и i pu sh в массив.

Весь процесс (чтение из файла, сохранение некоторого столбца в массиве и т. Д. c) занимает около 20 секунд. Пока все в порядке.

Но проблема начинается после этого момента. Я хочу записать весь массив (снова 300k элемент) в CSV-файл, разделив его с помощью ~.

, который я использовал;

$fp = fopen('php://output', 'w');
foreach ($array as $arrayItem) { 
   fputcsv($fp, $arrayItem,'~'); 
}
fclose($fp);

Но это решение очень медленное и занимает слишком много времени записать всю память в файл. Объем данных в памяти составляет примерно 2,5 ГБ. Что нужно сделать, чтобы запись была очень быстрой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...