如何在计算集群中处理大数据



我有一个150GB的CSV文件(单细胞RNA-seq, 110万行,31,000列,除一列外所有列都是16位浮点数),我需要使用,所以我必须将其全部加载到RAM中。我可以访问一个计算集群。我是否应该专注于增加内核的数量、每个内核分配的内存量,或者其他一些参数来实现这个目标?

我希望将数据子集到单独的文件中,并使用基因共表达分析包分别处理它们,并使用Seurat进行标记基因分析。

我可以访问具有192GB RAM的节点,每个节点有48个内核

Pandas已经准备好用read_csv()方法解决这个问题。
您有chunksize参数,指定每次要处理的块,并返回用于迭代的TextFileReader对象。

import pandas as pd
path = "foo.csv"
df = pd.read_csv(path, chunksize = 10**6)

关于read_csv的更多信息

由于你正在使用HPC,你可以给一个更大的块大小,但是这仍然是更好的工作与此和一个上下文管理器比仅仅是暴力加载整个文件到内存一次。

最新更新