如何在python中有效地写入和读取数据?

时间:2020-04-05 13:12:31

标签: python pickle h5py

我的应用程序需要定期处理数据。应用程序需要处理新数据,然后将其与旧数据合并。数据可能有数十亿行,其中只有两列,第一列是行名,第二列是值。以下是示例:

a00001,12
a00002,2321
a00003,234

新数据可能具有新的行名或旧的行名。我要合并它们。因此,在每个处理过程中,我都需要读取旧的大数据文件并将其与新文件合并。然后,我将新数据写入新文件。

我发现最耗时的过程是读取和写入数据。我尝试了几种数据I / O方式。

  1. 原始语言的读写文本。这是最耗时的方法
  2. Python pickle软件包,但是,对于大型数据文件而言效率不高

还有其他任何数据I / O格式或包可以在python中有效地加载和写入大数据吗?

2 个答案:

答案 0 :(得分:1)

如果数据量如此之大,尝试减少必须读写的数据量可能会更快。

您可以将数据分散在多个文件中,而不是全部保存在一个文件中。 在处理新数据时,请检查必须合并哪些旧数据,然后仅读取和写入这些特定文件。

您的数据有两行:

name1, data1
name2, data2

包含旧数据的文件:

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 

现在,您可以检查需要合并哪些数据,而只需读写包含该数据的特定文件即可。

不确定要实现的目标是否允许像这样的系统,但是由于要处理的数据较少,因此可以加快处理速度。

答案 1 :(得分:0)

也许这个article可以为您提供帮助。似乎fatherparquet可能很有趣。