我需要读取包含交易数据的大文件(大约20G),并且我想知道是否有一个很好的方法来读取文件而不会消除内存。Q/kdb +读取巨大的文本文件
我现在的方法是通过列加载文件,并加入这些列在一起:
columnA:(" S "; 10 20 30)0:`filepath
这种方法的问题是,虽然它是相当快的,它使用的内存大块,我想以改善其内存使用情况。
我也曾尝试使用.Q.fs,但它需要3个多小时将文件加载...
有没有办法不消耗吨的内存有效做到这一点?
感谢
我需要读取包含交易数据的大文件(大约20G),并且我想知道是否有一个很好的方法来读取文件而不会消除内存。Q/kdb +读取巨大的文本文件
我现在的方法是通过列加载文件,并加入这些列在一起:
columnA:(" S "; 10 20 30)0:`filepath
这种方法的问题是,虽然它是相当快的,它使用的内存大块,我想以改善其内存使用情况。
我也曾尝试使用.Q.fs,但它需要3个多小时将文件加载...
有没有办法不消耗吨的内存有效做到这一点?
感谢
你需要保持桌面在内存或者这是一个中间步骤编写表磁盘?
如果您想将表保存在内存中,听起来您没有足够的RAM。无论你阅读每一个单独的列,然后使用.Q.fs
加入或流式传输表,我怀疑总内存足迹将是相似的。
您可以按照步骤here显示如何处理大型文件,尽管所有这些文件都使用.Q.fs
。我的猜测是你已经看过这个。
如果您将表格直接保存为磁盘作为展开的表格,则可以在每一列中读取并单独写出。然后从内存中删除列,然后再转到下一个。