我有一个大文件~1 TB,我必须加入较小的~4 GB。我正在尝试使用dask包来实现这个dask,但是合并的结果比机器内存大128 GB,最后是MemoryError。我试图保持合并的结果作为延迟收集,但不知道如何将结果直接保存到外部文件的最后。
small_file = dd.read_csv('file1.txt', sep='|', dtype=str)
large_file = dd.read_csv('file2.txt', sep='|', dtype=str)
merged = dd.merge(large_file, small_file, on='key').to_delayed()
要将dask数据帧保存到文件,可以使用to_csv
或to_parquet
等方法
small_file = dd.read_csv('file1.txt', sep='|', dtype=str)
large_file = dd.read_csv('file2.txt', sep='|', dtype=str)
merged = dd.merge(large_file, small_file, on='key')
merged.to_csv('path/to/myfiles.*.csv')
有关更多信息,请参阅http://dask.pydata.org/en/latest/dataframe-create.html