Как эффективно записывать и читать данные в python? - PullRequest
0 голосов
/ 05 апреля 2020

Мое приложение должно периодически обрабатывать данные. Приложение должно обработать новые данные, а затем объединить их со старыми. Данные могут иметь миллиарды строк только с двумя столбцами, причем первый столбец - это имя строки, а второй - значения. Следующий пример является примером:

a00001,12
a00002,2321
a00003,234

Новые данные могут иметь новые имена строк или старые. Я хочу объединить их. Таким образом, каждый в процедуре обработки мне нужно прочитать старый большой файл данных и объединить его с новыми. Затем я записываю новые данные в новый файл.

Я считаю, что наиболее трудоемким процессом является чтение и запись данных. Я пробовал несколько способов ввода / вывода данных.

  1. Оригинальное чтение и запись текста. Это наиболее трудоемкий способ
  2. Python пакета pickle, однако он неэффективен для больших файлов данных

Существуют ли другие форматы ввода-вывода данных или пакеты может эффективно загружать и записывать большие данные в python?

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Если у вас есть такие большие объемы данных, возможно, будет быстрее попытаться уменьшить объем данных, которые вы должны читать и записывать.

Вы можете распределить данные по нескольким файлам вместо того, чтобы сохранить их все в один. При обработке новых данных проверьте, какие старые данные необходимо объединить, и просто прочитайте и запишите эти указанные c файлы.

Ваши данные состоят из двух строк:

name1, data1
name2, data2

Файлы, содержащие старые data:

db_1.dat,               db_2.dat,                 db_3.dat
name_1: data_1          name_1001: data_1001      name_2001: data_2001
.                       .                         .
.                       .                         .
.                       .                         .                
name_1000: data_1000    name_2000: data_2000      name_3000: data_3000 

Теперь вы можете проверить, какие данные вам нужно объединить, и просто прочитать и записать указанные c файлы, содержащие эти данные.

Не уверены, что именно вы пытаетесь Команда allow позволяет использовать такую ​​систему, но это ускорит процесс, поскольку для обработки данных требуется меньше данных.

0 голосов
/ 05 апреля 2020

Может быть, эта статья может вам помочь. Вроде бы папа и паркет может быть интересным.

...