如何在python中高效地写入和读取数据?
How to write and read data efficiently in python?
我的应用程序需要定期处理数据。应用程序需要处理新数据,然后将其与旧数据合并。数据可能有数十亿行,只有两列,第一列是行名,第二列是值。以下为范例:
a00001,12
a00002,2321
a00003,234
新数据可能有新行名或旧行名。我想合并它们。所以每个处理过程我都需要读取旧的大数据文件并将其与新的合并。然后我将新数据写入一个新文件。
我发现最耗时的过程是读写数据。我已经尝试了几种数据 I/O 方式。
- 原创读写文字。这是最耗时的方式
- Python pickle 包,但是对于大数据文件效率不高
是否有其他数据I/O格式或包可以在python中高效地加载和写入大数据?
也许这个 article could help you. It seems like father and parquet 可能很有趣。
如果您有如此大量的数据,尝试减少必须读取和写入的数据量可能会更快。
您可以将数据分布在多个文件中,而不是将它们全部保存在一个文件中。
在处理新数据时,检查哪些旧数据必须合并,然后只读写那些特定的文件。
您的数据有两行:
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
现在您可以检查需要合并哪些数据,然后只需读写保存该数据的特定文件即可。
不确定您要实现的目标是否允许这样的系统,但它会加快进程,因为要处理的数据较少。
我的应用程序需要定期处理数据。应用程序需要处理新数据,然后将其与旧数据合并。数据可能有数十亿行,只有两列,第一列是行名,第二列是值。以下为范例:
a00001,12
a00002,2321
a00003,234
新数据可能有新行名或旧行名。我想合并它们。所以每个处理过程我都需要读取旧的大数据文件并将其与新的合并。然后我将新数据写入一个新文件。
我发现最耗时的过程是读写数据。我已经尝试了几种数据 I/O 方式。
- 原创读写文字。这是最耗时的方式
- Python pickle 包,但是对于大数据文件效率不高
是否有其他数据I/O格式或包可以在python中高效地加载和写入大数据?
也许这个 article could help you. It seems like father and parquet 可能很有趣。
如果您有如此大量的数据,尝试减少必须读取和写入的数据量可能会更快。
您可以将数据分布在多个文件中,而不是将它们全部保存在一个文件中。 在处理新数据时,检查哪些旧数据必须合并,然后只读写那些特定的文件。
您的数据有两行:
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
现在您可以检查需要合并哪些数据,然后只需读写保存该数据的特定文件即可。
不确定您要实现的目标是否允许这样的系统,但它会加快进程,因为要处理的数据较少。