如何将非常大的csv文件与另一个csv文件连接起来?

如何将非常大的csv文件与另一个csv文件连接起来?,csv,join,large-files,Csv,Join,Large Files,我想基于一个字段加入两个CSV文件。其中一个文件的容量约为1TB(2.5亿条记录,2080列)。另一个较小,有几个列和2000万条记录。我试图使用python的dask包来完成这个特定的任务,但无法处理非常耗时的加入阶段。不幸的是,我必须使用内存为120 GB的Windows机器来完成这项工作,因此Hadoop在这里不是一个选项。我有Python、R和sqlserver 当我陷入困境时,提前感谢您的帮助 我会告诉你在内存中加载小的,而不是一行一行地读取大的,加入内存中的信息,并将结果写入一个新文

我想基于一个字段加入两个CSV文件。其中一个文件的容量约为1TB(2.5亿条记录,2080列)。另一个较小,有几个列和2000万条记录。我试图使用python的dask包来完成这个特定的任务,但无法处理非常耗时的加入阶段。不幸的是,我必须使用内存为120 GB的Windows机器来完成这项工作,因此Hadoop在这里不是一个选项。我有Python、R和sqlserver


当我陷入困境时,提前感谢您的帮助

我会告诉你在内存中加载小的,而不是一行一行地读取大的,加入内存中的信息,并将结果写入一个新文件。内存中只有一行+小文件。如果这不是那么小,那么之前对这两个字段进行排序应该允许每个文件只读取一行(如果连接的条件很简单)。请向我们提供有关您的问题的更多详细信息。谢谢@AxelH的提示。这种方法是个好主意,但确实很耗时。只加载一行,然后将这一行与另一个文件中的所有记录合并并保存到外部文件需要一些时间。必须执行2.5亿次,因此需要大量的I/O操作。当我思考这个问题并试图找到一些好的方法时,我的想法是:也许有某种语言/工具最适合perl甚至bash这样的任务?你怎么认为?也许使用Python/R并将文件加载到内存中不是一个好的解决方案。