以Tab分隔值的txt文件格式存储非常大的数据



我正在使用pd.read_sql()从SQL DB加载数据集。我试图在excel/csv文件中存储1亿行和300列。但是由于限制为1,048,576行而失败。

所以我试图使用

存储与.tsv文件相同的文件
pd.to_csv("data.txt", header=True, index=False, sep='t', mode='a')

我没有发现制表符分隔文本文件的限制。

可以走了吗,还是有其他好的选择?

我唯一不确定的是pandas内部是如何工作的。除此之外,你的方法完全没问题。Hadoop广泛使用.tsv格式来存储和处理数据。并且没有".tsv文件的限制"这样的东西。文件只是一个字节序列。tn只是字符,没有任何区别。你遇到的限制是由微软Excel强加的,而不是由操作系统。例如,很久以前它是较低的,其他电子表格应用程序可能会施加不同的限制。

如果设置了open('your_file.tsv', 'wt')readline,则占用n之前的字节。别的什么也没发生。在n之前,不存在允许多少ts的问题,一个文件中允许多少ns的问题。它们都是字节,一个文件可以包含操作系统允许的最多的字符。

它在不同的操作系统中有所不同,然而,根据NTFS vs FAT vs exFAT, NTFS文件系统的最大文件大小几乎是16TB。但实际上,将一个大文件分割成多个大小合理的文件是个好主意。例如,您可以轻松地分发它们。

处理这样的大数据,应该采用迭代或分布式的方法。例如,Hadoop.

可能不是个好主意。您的限制是您的机器内存,因为pandas将所有内容加载到内存中。这种大小的数据帧不适合。你可能需要更多的机器和分布式计算框架,如apache spark或dask。

或者,根据您想对数据做什么,您可能不需要将其加载到内存中。

相关内容

  • 没有找到相关文章

最新更新